Fix warning (use of uninitialized value) added per d0a842c5db
(fixes https://gitlab.com/libtiff/libtiff/merge_requests/54#note_137742985)
This commit is contained in:
parent
cee7c07789
commit
38ede78b13
@ -88,13 +88,15 @@ setDoubleArrayOneValue(double** vpp, double value, size_t nmemb)
|
|||||||
* Install extra samples information.
|
* Install extra samples information.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
setExtraSamples(TIFFDirectory* td, va_list ap, uint32* v)
|
setExtraSamples(TIFF* tif, va_list ap, uint32* v)
|
||||||
{
|
{
|
||||||
/* XXX: Unassociated alpha data == 999 is a known Corel Draw bug, see below */
|
/* XXX: Unassociated alpha data == 999 is a known Corel Draw bug, see below */
|
||||||
#define EXTRASAMPLE_COREL_UNASSALPHA 999
|
#define EXTRASAMPLE_COREL_UNASSALPHA 999
|
||||||
|
|
||||||
uint16* va;
|
uint16* va;
|
||||||
uint32 i;
|
uint32 i;
|
||||||
|
TIFFDirectory* td = &tif->tif_dir;
|
||||||
|
static const char module[] = "setExtraSamples";
|
||||||
|
|
||||||
*v = (uint16) va_arg(ap, uint16_vap);
|
*v = (uint16) va_arg(ap, uint16_vap);
|
||||||
if ((uint16) *v > td->td_samplesperpixel)
|
if ((uint16) *v > td->td_samplesperpixel)
|
||||||
@ -116,6 +118,18 @@ setExtraSamples(TIFFDirectory* td, va_list ap, uint32* v)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( td->td_transferfunction[0] != NULL && (td->td_samplesperpixel - *v > 1) &&
|
||||||
|
!(td->td_samplesperpixel - td->td_extrasamples > 1))
|
||||||
|
{
|
||||||
|
TIFFWarningExt(tif->tif_clientdata,module,
|
||||||
|
"ExtraSamples tag value is changing, "
|
||||||
|
"but TransferFunction was read with a different value. Cancelling it");
|
||||||
|
TIFFClrFieldBit(tif,FIELD_TRANSFERFUNCTION);
|
||||||
|
_TIFFfree(td->td_transferfunction[0]);
|
||||||
|
td->td_transferfunction[0] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
td->td_extrasamples = (uint16) *v;
|
td->td_extrasamples = (uint16) *v;
|
||||||
_TIFFsetShortArray(&td->td_sampleinfo, va, td->td_extrasamples);
|
_TIFFsetShortArray(&td->td_sampleinfo, va, td->td_extrasamples);
|
||||||
return 1;
|
return 1;
|
||||||
@ -373,17 +387,7 @@ _TIFFVSetField(TIFF* tif, uint32 tag, va_list ap)
|
|||||||
_TIFFsetShortArray(&td->td_colormap[2], va_arg(ap, uint16*), v32);
|
_TIFFsetShortArray(&td->td_colormap[2], va_arg(ap, uint16*), v32);
|
||||||
break;
|
break;
|
||||||
case TIFFTAG_EXTRASAMPLES:
|
case TIFFTAG_EXTRASAMPLES:
|
||||||
if ( td->td_transferfunction[0] != NULL && (td->td_samplesperpixel - v > 1) &&
|
if (!setExtraSamples(tif, ap, &v))
|
||||||
!(td->td_samplesperpixel - td->td_extrasamples > 1))
|
|
||||||
{
|
|
||||||
TIFFWarningExt(tif->tif_clientdata,module,
|
|
||||||
"ExtraSamples tag value is changing, "
|
|
||||||
"but TransferFunction was read with a different value. Cancelling it");
|
|
||||||
TIFFClrFieldBit(tif,FIELD_TRANSFERFUNCTION);
|
|
||||||
_TIFFfree(td->td_transferfunction[0]);
|
|
||||||
td->td_transferfunction[0] = NULL;
|
|
||||||
}
|
|
||||||
if (!setExtraSamples(td, ap, &v))
|
|
||||||
goto badvalue;
|
goto badvalue;
|
||||||
break;
|
break;
|
||||||
case TIFFTAG_MATTEING:
|
case TIFFTAG_MATTEING:
|
||||||
|
Loading…
Reference in New Issue
Block a user