From 4907f19901f5841562679252ba868f96613b0b61 Mon Sep 17 00:00:00 2001 From: Lutz Mueller Date: Wed, 30 Jul 2003 00:19:40 +0200 Subject: [PATCH] 2003-07-30 Lutz Mueller * libexif/exif-entry.c: Don't crash if entries are totally insane. --- ChangeLog | 4 ++++ libexif/exif-entry.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6a5f95f..7fff711 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-07-30 Lutz Mueller + + * libexif/exif-entry.c: Don't crash if entries are totally insane. + 2003-07-20 Lutz Mueller * configure.in: Version 0.5.10 diff --git a/libexif/exif-entry.c b/libexif/exif-entry.c index 50959b4..2d547e3 100644 --- a/libexif/exif-entry.c +++ b/libexif/exif-entry.c @@ -165,6 +165,14 @@ exif_entry_get_value (ExifEntry *e) memset (v, 0, sizeof (v)); memset (b, 0, sizeof (b)); + /* Sanity check */ + if (e->size != e->components * exif_format_get_size (e->format)) { + snprintf (v, sizeof (v), _("Invalid size of entry (%i, " + "expected %li x %i)."), e->size, e->components, + exif_format_get_size (e->format)); + return v; + } + switch (e->tag) { case EXIF_TAG_USER_COMMENT: CF (e->format, EXIF_FORMAT_UNDEFINED, v); @@ -884,6 +892,7 @@ exif_entry_get_value (ExifEntry *e) e->components); } default: + if (!e->components) break; switch (e->format) { case EXIF_FORMAT_UNDEFINED: break; -- 2.7.4