diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-03-20 23:06:34 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-03-20 23:06:34 +0000 |
commit | 1032329bc164387a081dcda04529592e4594ebca (patch) | |
tree | 388efb29d7dec913e943931ac08952408292903b | |
parent | 053569192c851e092397ebe610e9e813861e570d (diff) | |
parent | 35b08ba4e03f677398ccdbf6531e5ec5a09b71f9 (diff) | |
download | libexif-android10-qpr3-release.tar.gz |
Snap for 6317653 from 35b08ba4e03f677398ccdbf6531e5ec5a09b71f9 to qt-qpr3-releaseandroid-10.0.0_r41android-10.0.0_r40android-10.0.0_r39android-10.0.0_r38android-10.0.0_r37android10-qpr3-s1-releaseandroid10-qpr3-release
Change-Id: I1b4769163d90741626d9e61a15ca9d89e51e2639
-rw-r--r-- | libexif/exif-data.c | 5 | ||||
-rw-r--r-- | libexif/exif-entry.c | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/libexif/exif-data.c b/libexif/exif-data.c index 80d9346..5a7763b 100644 --- a/libexif/exif-data.c +++ b/libexif/exif-data.c @@ -315,7 +315,10 @@ exif_data_load_data_thumbnail (ExifData *data, const unsigned char *d, unsigned int ds, ExifLong o, ExifLong s) { /* Sanity checks */ - if ((o + s < o) || (o + s < s) || (o + s > ds) || (o > ds)) { + uint64_t o64 = (uint64_t) o; + uint64_t s64 = (uint64_t) s; + uint64_t ds64 = (uint64_t) ds; + if ((o64 + s64) > ds64) { exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", "Bogus thumbnail offset (%u) or size (%u).", o, s); diff --git a/libexif/exif-entry.c b/libexif/exif-entry.c index 0f72865..4a90842 100644 --- a/libexif/exif-entry.c +++ b/libexif/exif-entry.c @@ -1043,12 +1043,12 @@ exif_entry_get_value (ExifEntry *e, char *val, unsigned int maxlen) d = 0.; entry = exif_content_get_entry ( e->parent->parent->ifd[EXIF_IFD_0], EXIF_TAG_MAKE); - if (entry && entry->data && + if (entry && entry->data && (entry->size > 7) && !strncmp ((char *)entry->data, "Minolta", 7)) { entry = exif_content_get_entry ( e->parent->parent->ifd[EXIF_IFD_0], EXIF_TAG_MODEL); - if (entry && entry->data) { + if (entry && entry->data && (entry->size > 8)) { if (!strncmp ((char *)entry->data, "DiMAGE 7", 8)) d = 3.9; else if (!strncmp ((char *)entry->data, "DiMAGE 5", 8)) |