| From 8a92f964a66d476ca8907234359e92a70fc1325b Mon Sep 17 00:00:00 2001 |
| From: Changqing Li <changqing.li@windriver.com> |
| Date: Tue, 28 Aug 2018 15:12:10 +0800 |
| Subject: [PATCH] On saving makernotes, make sure the makernote container tags |
| has a type with 1 byte components. |
| |
| Fixes (at least): |
| https://sourceforge.net/p/libexif/bugs/130 |
| https://sourceforge.net/p/libexif/bugs/129 |
| |
| Upstream-Status: Backport[https://github.com/libexif/libexif/commit/ |
| c39acd1692023b26290778a02a9232c873f9d71a#diff-830e348923810f00726700b083ec00cd] |
| |
| CVE: CVE-2017-7544 |
| |
| Signed-off-by: Changqing Li <changqing.li@windriver.com> |
| --- |
| libexif/exif-data.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/libexif/exif-data.c b/libexif/exif-data.c |
| index 67df4db..6bf89eb 100644 |
| --- a/libexif/exif-data.c |
| +++ b/libexif/exif-data.c |
| @@ -255,6 +255,12 @@ exif_data_save_data_entry (ExifData *data, ExifEntry *e, |
| exif_mnote_data_set_offset (data->priv->md, *ds - 6); |
| exif_mnote_data_save (data->priv->md, &e->data, &e->size); |
| e->components = e->size; |
| + if (exif_format_get_size (e->format) != 1) { |
| + /* e->format is taken from input code, |
| + * but we need to make sure it is a 1 byte |
| + * entity due to the multiplication below. */ |
| + e->format = EXIF_FORMAT_UNDEFINED; |
| + } |
| } |
| } |
| |
| -- |
| 2.7.4 |
| |