Do not try to read past directory sector in detection of media type. Fixes #697

This commit is contained in:
2021-11-09 17:41:38 +00:00
parent 2d8d72f61b
commit fa0ad3b7ab

View File

@@ -1831,8 +1831,8 @@ namespace Aaru.Core.Media.Detection
{ {
int rootPos = ri * 2048; int rootPos = ri * 2048;
while(isoSector[rootPos] > 0 && while(rootPos < isoSector.Length &&
rootPos < isoSector.Length && isoSector[rootPos] > 0 &&
rootPos + isoSector[rootPos] <= isoSector.Length) rootPos + isoSector[rootPos] <= isoSector.Length)
{ {
int nameLen = isoSector[rootPos + 32]; int nameLen = isoSector[rootPos + 32];
@@ -2077,8 +2077,8 @@ namespace Aaru.Core.Media.Detection
{ {
int vcdPos = vi * 2048; int vcdPos = vi * 2048;
while(isoSector[vcdPos] > 0 && while(vcdPos < isoSector.Length &&
vcdPos < isoSector.Length && isoSector[vcdPos] > 0 &&
vcdPos + isoSector[vcdPos] <= isoSector.Length) vcdPos + isoSector[vcdPos] <= isoSector.Length)
{ {
int nameLen = isoSector[vcdPos + 32]; int nameLen = isoSector[vcdPos + 32];
@@ -2174,8 +2174,8 @@ namespace Aaru.Core.Media.Detection
{ {
int pcdPos = pi * 2048; int pcdPos = pi * 2048;
while(isoSector[pcdPos] > 0 && while(pcdPos < isoSector.Length &&
pcdPos < isoSector.Length && isoSector[pcdPos] > 0 &&
pcdPos + isoSector[pcdPos] <= isoSector.Length) pcdPos + isoSector[pcdPos] <= isoSector.Length)
{ {
int nameLen = isoSector[pcdPos + 32]; int nameLen = isoSector[pcdPos + 32];