GraphicsMagick: MAT: Check return value from SeekBlob()
GraphicsMagick Commits <[email protected]>
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.28316.1640188289.1995.graphicsmagick-commit@lists.sourceforge.net> |
changeset fd361514b612 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=fd361514b612
summary: MAT: Check return value from SeekBlob()
diffstat:
coders/mat.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diffs (42 lines):
diff -r ee10270827f0 -r fd361514b612 coders/mat.c
--- a/coders/mat.c Wed Dec 22 08:35:05 2021 -0600
+++ b/coders/mat.c Wed Dec 22 09:51:16 2021 -0600
@@ -491,7 +491,8 @@
size_t (*ReadBlobXXXDoubles)(Image *image, size_t len, double *data);
size_t (*ReadBlobXXXFloats)(Image *image, size_t len, float *data);
- (void)SeekBlob(image,0,SEEK_SET);
+ if (SeekBlob(image,0,SEEK_SET) != (magick_off_t) 0)
+ RET_CHECK(image);
while(!EOFBlob(image)) /* object parser loop */
{
ldblk = ReadBlobLSBLong(image);
@@ -532,7 +533,8 @@
HDR.nameLen = ReadBlobXXXLong(image);
if(HDR.nameLen>0xFFFF) RET_CHECK(image);
- (void)SeekBlob(image,HDR.nameLen,SEEK_CUR); /* Skip a matrix name. */
+ if (SeekBlob(image,HDR.nameLen,SEEK_CUR) < 0) /* Skip a matrix name. */
+ RET_CHECK(image);
switch(HDR.Type[1])
{
@@ -598,7 +600,8 @@
if(HDR.imagf==1) ldblk=MagickArraySize(2,ldblk); /*ldblk *= 2;*/
offset=MagickArraySize(HDR.nCols,ldblk);
if(offset==0) RET_CHECK(image);
- SeekBlob(image, offset, SEEK_CUR);;
+ if (SeekBlob(image, offset, SEEK_CUR) < 0)
+ RET_CHECK(image);
goto skip_reading_current;
}
@@ -995,7 +998,7 @@
case 0:
size = ReadBlobXXXLong(image2); /* Object name string size */
size = 4 * (((size_t) size + 3 + 1) / 4);
- (void) SeekBlob(image2, size, SEEK_CUR);
+ if (SeekBlob(image2, size, SEEK_CUR) < 0) goto MATLAB_KO;
break;
case 1:
case 2: