Skip to content

Commit 6e8cac3

Browse files
committed
fix marker pointer address can be decremented by int dataSize.
1 parent adb31d9 commit 6e8cac3

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

tinyexr.h

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5818,15 +5818,20 @@ static bool ReconstructTileOffsets(OffsetData& offset_data,
58185818

58195819
} else {
58205820

5821-
if ((marker + sizeof(int)) >= (head + size)) {
5821+
if ((marker + sizeof(uint32_t)) >= (head + size)) {
58225822
return false;
58235823
}
58245824

5825-
int dataSize;
5826-
memcpy(&dataSize, marker, sizeof(int));
5825+
uint32_t dataSize;
5826+
memcpy(&dataSize, marker, sizeof(uint32_t));
58275827
tinyexr::swap4(&dataSize);
5828-
marker += sizeof(int);
5828+
marker += sizeof(uint32_t);
5829+
58295830
marker += dataSize;
5831+
5832+
if (marker >= (head + size)) {
5833+
return false;
5834+
}
58305835
}
58315836

58325837
if (!isValidTile(exr_header, offset_data,

0 commit comments

Comments
 (0)