diff options
author | Jeremy Huddleston <eradicator@gentoo.org> | 2005-05-10 06:07:47 +0000 |
---|---|---|
committer | Jeremy Huddleston <eradicator@gentoo.org> | 2005-05-10 06:07:47 +0000 |
commit | c7010ad9cd2f5085dc3f5030a4de5f8ba8042473 (patch) | |
tree | ea5694039d91b8c62b7e30bdee03df8c6b5f0635 /media-libs/libexif/files | |
parent | version bump to 1.0.3 (currently masked until testing is done); stablize 0.9.... (diff) | |
download | gentoo-2-c7010ad9cd2f5085dc3f5030a4de5f8ba8042473.tar.gz gentoo-2-c7010ad9cd2f5085dc3f5030a4de5f8ba8042473.tar.bz2 gentoo-2-c7010ad9cd2f5085dc3f5030a4de5f8ba8042473.zip |
Revbump to fix security bug #92035. Stable on amd64, sparc, and x86.
(Portage version: 2.0.51.21-r1)
Diffstat (limited to 'media-libs/libexif/files')
-rw-r--r-- | media-libs/libexif/files/digest-libexif-0.5.12-r3 | 1 | ||||
-rw-r--r-- | media-libs/libexif/files/digest-libexif-0.6.12-r4 (renamed from media-libs/libexif/files/digest-libexif-0.6.12-r3) | 0 | ||||
-rw-r--r-- | media-libs/libexif/files/libexif-0.5.12-recurse.patch | 67 | ||||
-rw-r--r-- | media-libs/libexif/files/libexif-0.6.12-recurse.patch | 70 |
4 files changed, 138 insertions, 0 deletions
diff --git a/media-libs/libexif/files/digest-libexif-0.5.12-r3 b/media-libs/libexif/files/digest-libexif-0.5.12-r3 new file mode 100644 index 000000000000..83a5d8ba424e --- /dev/null +++ b/media-libs/libexif/files/digest-libexif-0.5.12-r3 @@ -0,0 +1 @@ +MD5 97e17fa05cb638eed5e8e59db431ed3a libexif-0.5.12.tar.gz 443724 diff --git a/media-libs/libexif/files/digest-libexif-0.6.12-r3 b/media-libs/libexif/files/digest-libexif-0.6.12-r4 index 09504fee0be0..09504fee0be0 100644 --- a/media-libs/libexif/files/digest-libexif-0.6.12-r3 +++ b/media-libs/libexif/files/digest-libexif-0.6.12-r4 diff --git a/media-libs/libexif/files/libexif-0.5.12-recurse.patch b/media-libs/libexif/files/libexif-0.5.12-recurse.patch new file mode 100644 index 000000000000..a877c7f22ac2 --- /dev/null +++ b/media-libs/libexif/files/libexif-0.5.12-recurse.patch @@ -0,0 +1,67 @@ +diff -Naurp libexif-0.5.12.orig/libexif/exif-data.c libexif-0.5.12/libexif/exif-data.c +--- libexif-0.5.12.orig/libexif/exif-data.c 2005-05-09 13:40:51.000000000 -0700 ++++ libexif-0.5.12/libexif/exif-data.c 2005-05-09 13:43:26.000000000 -0700 +@@ -172,9 +172,10 @@ exif_data_load_data_thumbnail (ExifData + } + + static void +-exif_data_load_data_content (ExifData *data, ExifContent *ifd, +- const unsigned char *d, +- unsigned int ds, unsigned int offset) ++exif_data_load_data_content_recurse (ExifData *data, ExifContent *ifd, ++ const unsigned char *d, ++ unsigned int ds, unsigned int offset, ++ unsigned int level) + { + ExifLong o, thumbnail_offset = 0, thumbnail_length = 0; + ExifShort n; +@@ -182,6 +183,11 @@ exif_data_load_data_content (ExifData *d + unsigned int i; + ExifTag tag; + ++ if (level > 150) ++ { ++ return 0; ++ } ++ + /* Read the number of entries */ + n = exif_get_short (d + offset, data->priv->order); + #ifdef DEBUG +@@ -205,16 +213,16 @@ exif_data_load_data_content (ExifData *d + data->priv->order); + switch (tag) { + case EXIF_TAG_EXIF_IFD_POINTER: +- exif_data_load_data_content (data, +- data->ifd[EXIF_IFD_EXIF], d, ds, o); ++ exif_data_load_data_content_recurse (data, ++ data->ifd[EXIF_IFD_EXIF], d, ds, o, level + 1); + break; + case EXIF_TAG_GPS_INFO_IFD_POINTER: +- exif_data_load_data_content (data, +- data->ifd[EXIF_IFD_GPS], d, ds, o); ++ exif_data_load_data_content_recurse (data, ++ data->ifd[EXIF_IFD_GPS], d, ds, o, level + 1); + break; + case EXIF_TAG_INTEROPERABILITY_IFD_POINTER: +- exif_data_load_data_content (data, +- data->ifd[EXIF_IFD_INTEROPERABILITY], d, ds, o); ++ exif_data_load_data_content_recurse (data, ++ data->ifd[EXIF_IFD_INTEROPERABILITY], d, ds, o, level + 1); + break; + case EXIF_TAG_JPEG_INTERCHANGE_FORMAT: + #ifdef DEBUG +@@ -252,6 +260,14 @@ exif_data_load_data_content (ExifData *d + } + + static void ++exif_data_load_data_content (ExifData *data, ExifContent *ifd, ++ const unsigned char *d, ++ unsigned int ds, unsigned int offset) ++{ ++ exif_data_load_data_content_recurse (data, ifd, d, ds, offset, 0); ++} ++ ++static void + exif_data_save_data_content (ExifData *data, ExifContent *ifd, + unsigned char **d, unsigned int *ds, + unsigned int offset) diff --git a/media-libs/libexif/files/libexif-0.6.12-recurse.patch b/media-libs/libexif/files/libexif-0.6.12-recurse.patch new file mode 100644 index 000000000000..acd1caecb50f --- /dev/null +++ b/media-libs/libexif/files/libexif-0.6.12-recurse.patch @@ -0,0 +1,70 @@ +--- libexif-0.6.12/libexif/exif-data.c.recurse 2005-05-06 13:35:17.610294000 -0400 ++++ libexif-0.6.12/libexif/exif-data.c 2005-05-06 13:37:35.112654000 -0400 +@@ -284,9 +284,10 @@ + } + + static void +-exif_data_load_data_content (ExifData *data, ExifContent *ifd, +- const unsigned char *d, +- unsigned int ds, unsigned int offset) ++exif_data_load_data_content_recurse (ExifData *data, ExifContent *ifd, ++ const unsigned char *d, ++ unsigned int ds, unsigned int offset, ++ unsigned int level) + { + ExifLong o, thumbnail_offset = 0, thumbnail_length = 0; + ExifShort n; +@@ -296,6 +297,13 @@ + + if (!data || !data->priv) return; + ++ if (level > 150) ++ { ++ exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData", ++ "Deep recursion in exif_data_load_data_content"); ++ return 0; ++ } ++ + /* Read the number of entries */ + if (offset >= ds - 1) return; + n = exif_get_short (d + offset, data->priv->order); +@@ -320,18 +328,18 @@ + switch (tag) { + case EXIF_TAG_EXIF_IFD_POINTER: + CHECK_REC (EXIF_IFD_EXIF); +- exif_data_load_data_content (data, +- data->ifd[EXIF_IFD_EXIF], d, ds, o); ++ exif_data_load_data_content_recurse (data, ++ data->ifd[EXIF_IFD_EXIF], d, ds, o, level + 1); + break; + case EXIF_TAG_GPS_INFO_IFD_POINTER: + CHECK_REC (EXIF_IFD_GPS); +- exif_data_load_data_content (data, +- data->ifd[EXIF_IFD_GPS], d, ds, o); ++ exif_data_load_data_content_recurse (data, ++ data->ifd[EXIF_IFD_GPS], d, ds, o, level + 1); + break; + case EXIF_TAG_INTEROPERABILITY_IFD_POINTER: + CHECK_REC (EXIF_IFD_INTEROPERABILITY); +- exif_data_load_data_content (data, +- data->ifd[EXIF_IFD_INTEROPERABILITY], d, ds, o); ++ exif_data_load_data_content_recurse (data, ++ data->ifd[EXIF_IFD_INTEROPERABILITY], d, ds, o, level + 1); + break; + case EXIF_TAG_JPEG_INTERCHANGE_FORMAT: + thumbnail_offset = o; +@@ -373,6 +381,14 @@ + } + + static void ++exif_data_load_data_content (ExifData *data, ExifContent *ifd, ++ const unsigned char *d, ++ unsigned int ds, unsigned int offset) ++{ ++ exif_data_load_data_content_recurse (data, ifd, d, ds, offset, 0); ++} ++ ++static void + exif_data_save_data_content (ExifData *data, ExifContent *ifd, + unsigned char **d, unsigned int *ds, + unsigned int offset) |