Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 109760 | Differences between
and this patch

Collapse All | Expand All

(-)/home/tcarrez/pngextractor.c.0.5.5 (-13 / +13 lines)
Lines 60-66 Link Here
60
  return result;
60
  return result;
61
}
61
}
62
62
63
static int getIntAt(const char * pos) {
63
static int getIntAt(const void * pos) {
64
  char p[4];
64
  char p[4];
65
65
66
  memcpy(p, pos, 4); /* ensure alignment! */
66
  memcpy(p, pos, 4); /* ensure alignment! */
Lines 86-92 Link Here
86
   { NULL, EXTRACTOR_UNKNOWN},
86
   { NULL, EXTRACTOR_UNKNOWN},
87
};
87
};
88
88
89
static struct EXTRACTOR_Keywords * processtEXt(const unsigned char * data,
89
static struct EXTRACTOR_Keywords * processtEXt(const char * data,
90
					       unsigned int length,
90
					       unsigned int length,
91
					       struct EXTRACTOR_Keywords * prev) {
91
					       struct EXTRACTOR_Keywords * prev) {
92
  char * keyword;
92
  char * keyword;
Lines 114-120 Link Here
114
		    prev);
114
		    prev);
115
}
115
}
116
116
117
static struct EXTRACTOR_Keywords * processiTXt(const unsigned char * data,
117
static struct EXTRACTOR_Keywords * processiTXt(const char * data,
118
					       unsigned int length,
118
					       unsigned int length,
119
					       struct EXTRACTOR_Keywords * prev) {
119
					       struct EXTRACTOR_Keywords * prev) {
120
  unsigned int pos;
120
  unsigned int pos;
Lines 165-173 Link Here
165
	/* printf("out of memory"); */
165
	/* printf("out of memory"); */
166
	return prev; /* out of memory */
166
	return prev; /* out of memory */
167
      }
167
      }
168
      ret = uncompress(buf,
168
      ret = uncompress((Bytef*) buf,
169
		       &bufLen,
169
		       &bufLen,
170
		       &data[pos],
170
		       (const Bytef*) &data[pos],
171
		       length - pos);
171
		       length - pos);
172
      if (ret == Z_OK) {
172
      if (ret == Z_OK) {
173
	/* printf("zlib ok"); */
173
	/* printf("zlib ok"); */
Lines 196-202 Link Here
196
		    prev);
196
		    prev);
197
}
197
}
198
198
199
static struct EXTRACTOR_Keywords * processIHDR(const unsigned char * data,
199
static struct EXTRACTOR_Keywords * processIHDR(const char * data,
200
					       unsigned int length,
200
					       unsigned int length,
201
					       struct EXTRACTOR_Keywords * prev) {
201
					       struct EXTRACTOR_Keywords * prev) {
202
  char * tmp;
202
  char * tmp;
Lines 216-222 Link Here
216
}
216
}
217
217
218
/* not supported... */
218
/* not supported... */
219
static struct EXTRACTOR_Keywords * processzTXt(const unsigned char * data,
219
static struct EXTRACTOR_Keywords * processzTXt(const char * data,
220
					       unsigned int length,
220
					       unsigned int length,
221
					       struct EXTRACTOR_Keywords * prev) {
221
					       struct EXTRACTOR_Keywords * prev) {
222
  char * keyword;
222
  char * keyword;
Lines 248-256 Link Here
248
      /* printf("out of memory"); */
248
      /* printf("out of memory"); */
249
      return prev; /* out of memory */
249
      return prev; /* out of memory */
250
    }
250
    }
251
    ret = uncompress(buf,
251
    ret = uncompress((Bytef*) buf,
252
		     &bufLen,
252
		     &bufLen,
253
		     &data[off],
253
		     (const Bytef*) &data[off],
254
		     length - off);
254
		     length - off);
255
    if (ret == Z_OK) {
255
    if (ret == Z_OK) {
256
      /* printf("zlib ok"); */
256
      /* printf("zlib ok"); */
Lines 283-293 Link Here
283
283
284
284
285
struct EXTRACTOR_Keywords * libextractor_png_extract(char * filename,
285
struct EXTRACTOR_Keywords * libextractor_png_extract(char * filename,
286
                                                     const unsigned char * data,
286
                                                     const char * data,
287
                                                     size_t size,
287
                                                     size_t size,
288
                                                     struct EXTRACTOR_Keywords * prev) {
288
                                                     struct EXTRACTOR_Keywords * prev) {
289
  const unsigned char * pos;
289
  const char * pos;
290
  const unsigned char * end;
290
  const char * end;
291
  struct EXTRACTOR_Keywords * result;
291
  struct EXTRACTOR_Keywords * result;
292
  unsigned int length;
292
  unsigned int length;
293
293
Lines 307-313 Link Here
307
    length = htonl(getIntAt(pos));  pos+=4;
307
    length = htonl(getIntAt(pos));  pos+=4;
308
    /* printf("Length: %u, pos %u\n", length, pos - data); */
308
    /* printf("Length: %u, pos %u\n", length, pos - data); */
309
    if ( (pos+4+length+4 > end) ||
309
    if ( (pos+4+length+4 > end) ||
310
	 (pos+4+length+4 < pos + 4 + length) )
310
	 (pos+4+length+4 < pos + 8) )
311
      break;
311
      break;
312
312
313
    if (0 == strncmp(pos, "IHDR", 4))
313
    if (0 == strncmp(pos, "IHDR", 4))

Return to bug 109760