* tools/thumbnail.c: Eliminate crash noticed while running test
suite.
This commit is contained in:
parent
bb9ee50811
commit
f44e642634
@ -1,3 +1,8 @@
|
|||||||
|
2008-12-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
|
||||||
|
|
||||||
|
* tools/thumbnail.c: Eliminate crash noticed while running test
|
||||||
|
suite.
|
||||||
|
|
||||||
2008-12-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
|
2008-12-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
|
||||||
|
|
||||||
* libtiff/tif_ojpeg.c (OJPEGLibjpegJpegSourceMgrFillInputBuffer):
|
* libtiff/tif_ojpeg.c (OJPEGLibjpegJpegSourceMgrFillInputBuffer):
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tif_dirwrite.c,v 1.69 2008-09-01 23:18:20 fwarmerdam Exp $ */
|
/* $Id: tif_dirwrite.c,v 1.70 2008-12-30 22:20:35 bfriesen Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988-1997 Sam Leffler
|
* Copyright (c) 1988-1997 Sam Leffler
|
||||||
@ -1740,9 +1740,10 @@ TIFFWriteDirectoryTagSubifd(TIFF* tif, uint32* ndir, TIFFDirEntry* dir)
|
|||||||
}
|
}
|
||||||
pa=tif->tif_dir.td_subifd;
|
pa=tif->tif_dir.td_subifd;
|
||||||
pb=o;
|
pb=o;
|
||||||
for (p=0; p<tif->tif_dir.td_nsubifd; p++)
|
for (p=0; p < tif->tif_dir.td_nsubifd; p++)
|
||||||
{
|
{
|
||||||
assert(*pa<=0xFFFFFFFFUL);
|
assert(pa != 0);
|
||||||
|
assert(*pa <= 0xFFFFFFFFUL);
|
||||||
*pb++=(uint32)(*pa++);
|
*pb++=(uint32)(*pa++);
|
||||||
}
|
}
|
||||||
n=TIFFWriteDirectoryTagCheckedIfdArray(tif,ndir,dir,TIFFTAG_SUBIFD,tif->tif_dir.td_nsubifd,o);
|
n=TIFFWriteDirectoryTagCheckedIfdArray(tif,ndir,dir,TIFFTAG_SUBIFD,tif->tif_dir.td_nsubifd,o);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: thumbnail.c,v 1.10 2008-05-23 17:24:41 fwarmerdam Exp $ */
|
/* $Id: thumbnail.c,v 1.11 2008-12-30 22:20:35 bfriesen Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1994-1997 Sam Leffler
|
* Copyright (c) 1994-1997 Sam Leffler
|
||||||
@ -161,6 +161,16 @@ cpTag(TIFF* in, TIFF* out, uint16 tag, uint16 count, TIFFDataType type)
|
|||||||
CopyField(tag, longv);
|
CopyField(tag, longv);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case TIFF_LONG8:
|
||||||
|
{ uint64 longv8;
|
||||||
|
CopyField(tag, longv8);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case TIFF_SLONG8:
|
||||||
|
{ int64 longv8;
|
||||||
|
CopyField(tag, longv8);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case TIFF_RATIONAL:
|
case TIFF_RATIONAL:
|
||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
float floatv;
|
float floatv;
|
||||||
@ -184,7 +194,11 @@ cpTag(TIFF* in, TIFF* out, uint16 tag, uint16 count, TIFFDataType type)
|
|||||||
CopyField(tag, doubleav);
|
CopyField(tag, doubleav);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
case TIFF_IFD8:
|
||||||
|
{ toff_t ifd8;
|
||||||
|
CopyField(tag, ifd8);
|
||||||
|
}
|
||||||
|
break; default:
|
||||||
TIFFError(TIFFFileName(in),
|
TIFFError(TIFFFileName(in),
|
||||||
"Data type %d is not supported, tag %d skipped.",
|
"Data type %d is not supported, tag %d skipped.",
|
||||||
tag, type);
|
tag, type);
|
||||||
@ -555,7 +569,7 @@ generateThumbnail(TIFF* in, TIFF* out)
|
|||||||
uint16 bps, spp;
|
uint16 bps, spp;
|
||||||
tsize_t rowsize, rastersize;
|
tsize_t rowsize, rastersize;
|
||||||
tstrip_t s, ns = TIFFNumberOfStrips(in);
|
tstrip_t s, ns = TIFFNumberOfStrips(in);
|
||||||
uint32 diroff[1];
|
toff_t diroff[1];
|
||||||
|
|
||||||
TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &sw);
|
TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &sw);
|
||||||
TIFFGetField(in, TIFFTAG_IMAGELENGTH, &sh);
|
TIFFGetField(in, TIFFTAG_IMAGELENGTH, &sh);
|
||||||
@ -596,7 +610,7 @@ generateThumbnail(TIFF* in, TIFF* out)
|
|||||||
cpTag(in, out, TIFFTAG_IMAGEDESCRIPTION, (uint16) -1, TIFF_ASCII);
|
cpTag(in, out, TIFFTAG_IMAGEDESCRIPTION, (uint16) -1, TIFF_ASCII);
|
||||||
cpTag(in, out, TIFFTAG_DATETIME, (uint16) -1, TIFF_ASCII);
|
cpTag(in, out, TIFFTAG_DATETIME, (uint16) -1, TIFF_ASCII);
|
||||||
cpTag(in, out, TIFFTAG_HOSTCOMPUTER, (uint16) -1, TIFF_ASCII);
|
cpTag(in, out, TIFFTAG_HOSTCOMPUTER, (uint16) -1, TIFF_ASCII);
|
||||||
diroff[0] = 0;
|
diroff[0] = 0UL;
|
||||||
TIFFSetField(out, TIFFTAG_SUBIFD, 1, diroff);
|
TIFFSetField(out, TIFFTAG_SUBIFD, 1, diroff);
|
||||||
return (TIFFWriteEncodedStrip(out, 0, thumbnail, tnw*tnh) != -1 &&
|
return (TIFFWriteEncodedStrip(out, 0, thumbnail, tnw*tnh) != -1 &&
|
||||||
TIFFWriteDirectory(out) != -1);
|
TIFFWriteDirectory(out) != -1);
|
||||||
|
Loading…
Reference in New Issue
Block a user