From: Lutz M. <lu...@us...> - 2008-02-14 19:21:02
|
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); |