+2006-01-19 Marcus Meissner <marcus@jet.franken.de>
+
+ * libexif/exif-data.c: Let exif_data_load_data_entry() signal failure
+ and discard entry in caller if it does.
+
2006-01-16 Hubert Figuiere <hub@figuiere.net>
* libexif/exif-mem.h, libexif/exif-loader.h: More documentation
return (edata);
}
-static void
+static int
exif_data_load_data_entry (ExifData *data, ExifEntry *entry,
const unsigned char *d,
unsigned int size, unsigned int offset)
*/
s = exif_format_get_size (entry->format) * entry->components;
if (!s)
- return;
+ return 0;
if (s > 4)
doff = exif_get_long (d + offset + 8, data->priv->order);
else
/* Sanity check */
if (size < doff + s)
- return;
+ return 0;
entry->data = exif_data_alloc (data, s);
if (entry->data) {
entry->data[6]);
data->priv->offset_mnote = doff;
}
+ return 1;
}
static void
break;
}
entry = exif_entry_new_mem (data->priv->mem);
- exif_data_load_data_entry (data, entry, d, ds,
- offset + 12 * i);
- exif_content_add_entry (data->ifd[ifd], entry);
+ if (exif_data_load_data_entry (data, entry, d, ds,
+ offset + 12 * i))
+ exif_content_add_entry (data->ifd[ifd], entry);
exif_entry_unref (entry);
break;
}