Properly read TIFFTAG_PAGENUMBER, TIFFTAG_HALFTONEHINTS,
TIFFTAG_YCBCRSUBSAMPLING and TIFFTAG_DOTRANGE tags as per bug http://bugzilla.remotesensing.org/show_bug.cgi?id=1088.
This commit is contained in:
parent
1146156015
commit
3cdfaeafb1
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tif_print.c,v 1.33 2005-12-24 15:36:16 dron Exp $ */
|
/* $Id: tif_print.c,v 1.34 2006-02-23 15:56:34 dron Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988-1997 Sam Leffler
|
* Copyright (c) 1988-1997 Sam Leffler
|
||||||
@ -528,14 +528,21 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
|
|||||||
value_count = td->td_samplesperpixel;
|
value_count = td->td_samplesperpixel;
|
||||||
else
|
else
|
||||||
value_count = fip->field_readcount;
|
value_count = fip->field_readcount;
|
||||||
if (fip->field_type == TIFF_ASCII
|
if ((fip->field_type == TIFF_ASCII
|
||||||
|| fip->field_readcount == TIFF_VARIABLE
|
|| fip->field_readcount == TIFF_VARIABLE
|
||||||
|| fip->field_readcount == TIFF_VARIABLE2
|
|| fip->field_readcount == TIFF_VARIABLE2
|
||||||
|| fip->field_readcount == TIFF_SPP
|
|| fip->field_readcount == TIFF_SPP
|
||||||
|| value_count > 1) {
|
|| value_count > 1)
|
||||||
|
&& fip->field_tag != TIFFTAG_PAGENUMBER
|
||||||
|
&& fip->field_tag != TIFFTAG_HALFTONEHINTS
|
||||||
|
&& fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING
|
||||||
|
&& fip->field_tag != TIFFTAG_DOTRANGE) {
|
||||||
if(TIFFGetField(tif, tag, &raw_data) != 1)
|
if(TIFFGetField(tif, tag, &raw_data) != 1)
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else if (fip->field_tag != TIFFTAG_PAGENUMBER
|
||||||
|
&& fip->field_tag != TIFFTAG_HALFTONEHINTS
|
||||||
|
&& fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING
|
||||||
|
&& fip->field_tag != TIFFTAG_DOTRANGE) {
|
||||||
raw_data = _TIFFmalloc(
|
raw_data = _TIFFmalloc(
|
||||||
_TIFFDataSize(fip->field_type)
|
_TIFFDataSize(fip->field_type)
|
||||||
* value_count);
|
* value_count);
|
||||||
@ -544,6 +551,24 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
|
|||||||
_TIFFfree(raw_data);
|
_TIFFfree(raw_data);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* XXX: Should be fixed and removed, see the
|
||||||
|
* notes related to TIFFTAG_PAGENUMBER,
|
||||||
|
* TIFFTAG_HALFTONEHINTS,
|
||||||
|
* TIFFTAG_YCBCRSUBSAMPLING and
|
||||||
|
* TIFFTAG_DOTRANGE tags in tif_dir.c. */
|
||||||
|
char *tmp;
|
||||||
|
raw_data = _TIFFmalloc(
|
||||||
|
_TIFFDataSize(fip->field_type)
|
||||||
|
* value_count);
|
||||||
|
tmp = raw_data;
|
||||||
|
mem_alloc = 1;
|
||||||
|
if(TIFFGetField(tif, tag, tmp,
|
||||||
|
tmp + _TIFFDataSize(fip->field_type)) != 1) {
|
||||||
|
_TIFFfree(raw_data);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user