Update of /cvsroot/libexif/libexif/libexif/fuji
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv2627/libexif/fuji
Modified Files:
exif-mnote-data-fuji.c
Log Message:
2008-02-14 Lutz Mueller <lu...@us...>
Fix #1774591 (partially):
* libexif/exif-content.c: (exif_content_remove_entry) Check the
return value of exif_mem_realloc.
* libexif/exif-data.c: (exif_data_save_data_entry),
(exif_data_save_data_content) Same here.
* libexif/canon/exif-mnote-data-canon.c:
(exif_mnote_data_canon_save), (exif_mnote_data_canon_load) Same here.
* libexif/fuji/exif-mnote-data-fuji.c:
(exif_mnote_data_fuji_save), (exif_mnote_data_fuji_load) Same here.
* libexif/olympus/exif-mnote-data-olympus.c:
(exif_mnote_data_olympus_save) Same here.
Index: exif-mnote-data-fuji.c
===================================================================
RCS file: /cvsroot/libexif/libexif/libexif/fuji/exif-mnote-data-fuji.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -d -r1.1 -r1.2
--- exif-mnote-data-fuji.c 7 Dec 2007 08:46:49 -0000 1.1
+++ exif-mnote-data-fuji.c 14 Feb 2008 19:20:22 -0000 1.2
@@ -79,6 +79,7 @@ exif_mnote_data_fuji_save (ExifMnoteData
{
ExifMnoteDataFuji *n = (ExifMnoteDataFuji *) ne;
unsigned int i, o, s, doff;
+ unsigned char *t;
if (!n || !buf || !buf_size) return;
@@ -117,11 +118,12 @@ exif_mnote_data_fuji_save (ExifMnoteData
/* Ensure even offsets. Set padding bytes to 0. */
if (s & 1) *buf_size += 1;
- *buf = exif_mem_realloc (ne->mem, *buf, *buf_size);
- if (!*buf) {
+ t = exif_mem_realloc (ne->mem, *buf, *buf_size);
+ if (!t) {
*buf_size = 0;
return;
}
+ *buf = t;
doff = *buf_size - s;
if (s & 1) { doff--; *(*buf + *buf_size - 1) = '\0'; }
exif_set_long (*buf + o, n->order, doff);
@@ -144,6 +146,7 @@ exif_mnote_data_fuji_load (ExifMnoteData
ExifMnoteDataFuji *n = (ExifMnoteDataFuji*) en;
ExifLong c;
unsigned int i, o, s, datao = 6 + n->offset;
+ MnoteFujiEntry *t;
if (!n || !buf || !buf_size || (buf_size < datao + 12)) return;
@@ -160,8 +163,10 @@ exif_mnote_data_fuji_load (ExifMnoteData
if (datao + 12 > buf_size) return;
n->count = i + 1;
- n->entries = exif_mem_realloc (en->mem, n->entries,
- sizeof (MnoteFujiEntry) * (i+1));
+ t = exif_mem_realloc (en->mem, n->entries,
+ sizeof (MnoteFujiEntry) * (i + 1));
+ if (!t) return;
+ n->entries = t;
memset (&n->entries[i], 0, sizeof (MnoteFujiEntry));
n->entries[i].tag = exif_get_short (buf + o, n->order);
n->entries[i].format = exif_get_short (buf + o + 2, n->order);
|