1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
$NetBSD: patch-an,v 1.1 2004/10/18 14:37:24 tron Exp $
--- libtiff/tif_dirinfo.c.orig 2003-12-22 09:22:15.000000000 +0100
+++ libtiff/tif_dirinfo.c 2004-10-18 16:25:32.000000000 +0200
@@ -31,6 +31,8 @@
*/
#include "tiffiop.h"
#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
/*
* NB: NB: THIS ARRAY IS ASSUMED TO BE SORTED BY TAG.
@@ -309,6 +311,7 @@
tif->tif_fieldinfo = (TIFFFieldInfo**)
_TIFFmalloc(n * sizeof (TIFFFieldInfo*));
}
+ assert(tif->tif_fieldinfo != NULL);
tp = &tif->tif_fieldinfo[tif->tif_nfields];
for (i = 0; i < n; i++)
tp[i] = (TIFFFieldInfo*) &info[i]; /* XXX */
@@ -376,7 +379,7 @@
TIFFDataType
_TIFFSampleToTagType(TIFF* tif)
{
- int bps = (int) TIFFhowmany(tif->tif_dir.td_bitspersample, 8);
+ uint32 bps = TIFFhowmany8(tif->tif_dir.td_bitspersample);
switch (tif->tif_dir.td_sampleformat) {
case SAMPLEFORMAT_IEEEFP:
@@ -422,9 +425,6 @@
return ((const TIFFFieldInfo *)0);
}
-#include <assert.h>
-#include <stdio.h>
-
const TIFFFieldInfo*
_TIFFFieldWithTag(TIFF* tif, ttag_t tag)
{
@@ -460,6 +460,8 @@
TIFFFieldInfo *fld;
fld = (TIFFFieldInfo *) _TIFFmalloc(sizeof (TIFFFieldInfo));
+ if (fld == NULL)
+ return NULL;
_TIFFmemset( fld, 0, sizeof(TIFFFieldInfo) );
fld->field_tag = tag;
@@ -470,6 +472,10 @@
fld->field_oktochange = TRUE;
fld->field_passcount = TRUE;
fld->field_name = (char *) _TIFFmalloc(32);
+ if (fld->field_name == NULL) {
+ _TIFFfree(fld);
+ return NULL;
+ }
/* note that this name is a special sign to TIFFClose() and
* _TIFFSetupFieldInfo() to free the field
|