media-libs/libjpeg-turbo-1.5.3-r2: Fix CVE-2018-11813
authorJason Zaman <perfinion@gentoo.org>
Thu, 16 Aug 2018 11:01:30 +0000 (19:01 +0800)
committerJason Zaman <perfinion@gentoo.org>
Thu, 16 Aug 2018 11:02:03 +0000 (19:02 +0800)
libjpeg 9c has a large loop because read_pixel in rdtarga.c mishandles EOF

https://nvd.nist.gov/vuln/detail/CVE-2018-11813

Bug: https://bugs.gentoo.org/658624
Package-Manager: Portage-2.3.40, Repoman-2.3.9

media-libs/libjpeg-turbo/files/libjpeg-turbo-1.5.3-cve-2018-11813.patch [new file with mode: 0644]
media-libs/libjpeg-turbo/libjpeg-turbo-1.5.3-r2.ebuild [moved from media-libs/libjpeg-turbo/libjpeg-turbo-1.5.3-r1.ebuild with 98% similarity]

diff --git a/media-libs/libjpeg-turbo/files/libjpeg-turbo-1.5.3-cve-2018-11813.patch b/media-libs/libjpeg-turbo/files/libjpeg-turbo-1.5.3-cve-2018-11813.patch
new file mode 100644 (file)
index 0000000..f99a1ab
--- /dev/null
@@ -0,0 +1,45 @@
+From 909a8cfc7bca9b2e6707425bdb74da997e8fa499 Mon Sep 17 00:00:00 2001
+From: DRC <information@libjpeg-turbo.org>
+Date: Tue, 12 Jun 2018 16:08:26 -0500
+Subject: [PATCH] Fix CVE-2018-11813
+
+Refer to change log for details.
+
+Fixes #242
+---
+ ChangeLog.md | 14 ++++++++++++++
+ rdtarga.c    |  6 ++----
+ 2 files changed, 16 insertions(+), 4 deletions(-)
+
+--- libjpeg-turbo-1.5.3/rdtarga.c
++++ libjpeg-turbo-1.5.3/rdtarga.c
+@@ -125,11 +125,10 @@
+ read_non_rle_pixel (tga_source_ptr sinfo)
+ /* Read one Targa pixel from the input file; no RLE expansion */
+ {
+-  register FILE *infile = sinfo->pub.input_file;
+   register int i;
+   for (i = 0; i < sinfo->pixel_size; i++) {
+-    sinfo->tga_pixel[i] = (U_CHAR) getc(infile);
++    sinfo->tga_pixel[i] = (U_CHAR) read_byte(sinfo);
+   }
+ }
+@@ -138,7 +137,6 @@
+ read_rle_pixel (tga_source_ptr sinfo)
+ /* Read one Targa pixel from the input file, expanding RLE data as needed */
+ {
+-  register FILE *infile = sinfo->pub.input_file;
+   register int i;
+   /* Duplicate previously read pixel? */
+@@ -160,7 +158,7 @@
+   /* Read next pixel */
+   for (i = 0; i < sinfo->pixel_size; i++) {
+-    sinfo->tga_pixel[i] = (U_CHAR) getc(infile);
++    sinfo->tga_pixel[i] = (U_CHAR) read_byte(sinfo);
+   }
+ }
similarity index 98%
rename from media-libs/libjpeg-turbo/libjpeg-turbo-1.5.3-r1.ebuild
rename to media-libs/libjpeg-turbo/libjpeg-turbo-1.5.3-r2.ebuild
index a18bcc5812bc1f499e8420b65e4847881c0dcbe4..578f104e04f0b210e528202067e989e3177d2245 100644 (file)
@@ -36,6 +36,7 @@ MULTILIB_WRAPPED_HEADERS=( /usr/include/jconfig.h )
 PATCHES=(
        "${FILESDIR}"/${PN}-1.2.0-x32.patch #420239
        "${FILESDIR}"/${P}-divzero_fix.patch #658624
+       "${FILESDIR}"/${P}-cve-2018-11813.patch
 )
 
 src_prepare() {