media-libs/libextractor: Patch CVE-2017-17440
authorAndreas Sturmlechner <asturm@gentoo.org>
Mon, 25 Dec 2017 12:47:15 +0000 (13:47 +0100)
committerAndreas Sturmlechner <asturm@gentoo.org>
Mon, 25 Dec 2017 13:53:02 +0000 (14:53 +0100)
Bug: https://bugs.gentoo.org/635362
Package-Manager: Portage-2.3.19, Repoman-2.3.6

media-libs/libextractor/files/libextractor-1.6-CVE-2017-17440.patch [new file with mode: 0644]
media-libs/libextractor/libextractor-1.6.ebuild

diff --git a/media-libs/libextractor/files/libextractor-1.6-CVE-2017-17440.patch b/media-libs/libextractor/files/libextractor-1.6-CVE-2017-17440.patch
new file mode 100644 (file)
index 0000000..1870375
--- /dev/null
@@ -0,0 +1,125 @@
+From 7cc63b001ceaf81143795321379c835486d0c92e Mon Sep 17 00:00:00 2001
+From: Christian Grothoff <christian@grothoff.org>
+Date: Wed, 1 Nov 2017 09:07:35 +0100
+Subject: fix misc NULL pointer exceptions
+
+---
+ src/include/extractor.h      |  2 +-
+ src/plugins/gif_extractor.c  | 16 +++++++++-------
+ src/plugins/it_extractor.c   |  6 +++---
+ src/plugins/nsfe_extractor.c |  8 ++++----
+ src/plugins/s3m_extractor.c  |  2 +-
+ src/plugins/sid_extractor.c  | 24 ++++++++++++------------
+ src/plugins/xm_extractor.c   |  8 ++++----
+ 21 files changed, 169 insertions(+), 162 deletions(-)
+* asturm: Cleaned up unrelated whitespace and translations changes.
+
+diff --git a/src/include/extractor.h b/src/include/extractor.h
+index 0325dc6..782134b 100644
+--- a/src/include/extractor.h
++++ b/src/include/extractor.h
+@@ -35,7 +35,7 @@ extern "C" {
+  * 0.2.6-1 => 0x00020601
+  * 4.5.2-0 => 0x04050200
+  */
+-#define EXTRACTOR_VERSION 0x01060000
++#define EXTRACTOR_VERSION 0x01060001
+ #include <stdio.h>
+diff --git a/src/plugins/gif_extractor.c b/src/plugins/gif_extractor.c
+index aae2b82..8ee5807 100644
+@@ -122,6 +122,8 @@ EXTRACTOR_gif_extract_method (struct EXTRACTOR_ExtractContext *ec)
+       if (GIF_OK !=
+         DGifGetExtension (gif_file, &et, &ext))
+       continue;
++      if (NULL == ext)
++        continue;
+       if (COMMENT_EXT_FUNC_CODE == et)
+       {
+         ec->proc (ec->cls,
+--- a/src/plugins/it_extractor.c
++++ b/src/plugins/it_extractor.c
+@@ -70,7 +70,7 @@ EXTRACTOR_it_extract_method (struct EXTRACTOR_ExtractContext *ec)
+   char itversion[8];
+   const struct Header *head;
+-  if (HEADER_SIZE >
++  if ((ssize_t) HEADER_SIZE >
+       ec->read (ec->cls,
+               &data,
+               HEADER_SIZE))
+--- a/src/plugins/nsfe_extractor.c
++++ b/src/plugins/nsfe_extractor.c
+@@ -175,7 +175,7 @@ info_extract (struct EXTRACTOR_ExtractContext *ec,
+   if (size < 8)
+     return 0;
+-  if (size >
++  if ((ssize_t) size >
+       ec->read (ec->cls,
+               &data,
+               size))
+@@ -243,7 +243,7 @@ tlbl_extract (struct EXTRACTOR_ExtractContext *ec,
+   void *data;
+   const char *cdata;
+-  if (size >
++  if ((ssize_t) size >
+       ec->read (ec->cls,
+               &data,
+               size))
+@@ -285,7 +285,7 @@ auth_extract (struct EXTRACTOR_ExtractContext *ec,
+   if (left < 1)
+     return 0;
+-  if (size >
++  if ((ssize_t) size >
+       ec->read (ec->cls,
+               &data,
+               size))
+@@ -342,7 +342,7 @@ EXTRACTOR_nsfe_extract_method (struct EXTRACTOR_ExtractContext *ec)
+   uint32_t chunksize;
+   int ret;
+-  if (sizeof (struct header) >
++  if ((ssize_t) sizeof (struct header) >
+       ec->read (ec->cls,
+               &data,
+               sizeof (struct header)))
+--- a/src/plugins/s3m_extractor.c
++++ b/src/plugins/s3m_extractor.c
+@@ -80,7 +80,7 @@ EXTRACTOR_s3m_extract_method (struct EXTRACTOR_ExtractContext *ec)
+   struct S3MHeader header;
+   char song_name_NT[29];
+-  if (sizeof (header) >
++  if ((ssize_t) sizeof (header) >
+       ec->read (ec->cls,
+               &data,
+               sizeof (header)))
+--- a/src/plugins/sid_extractor.c
++++ b/src/plugins/sid_extractor.c
+@@ -176,7 +176,7 @@ EXTRACTOR_sid_extract_method (struct EXTRACTOR_ExtractContext *ec)
+   const struct header *head;
+   void *data;
+-  if (sizeof (struct header) >
++  if ((ssize_t) sizeof (struct header) >
+       ec->read (ec->cls,
+               &data,
+               sizeof (struct header)))
+--- a/src/plugins/xm_extractor.c
++++ b/src/plugins/xm_extractor.c
+@@ -70,7 +70,7 @@ EXTRACTOR_xm_extract_method (struct EXTRACTOR_ExtractContext *ec)
+   char xmversion[8];
+   size_t n;
+-  if (sizeof (struct Header) >
++  if ((ssize_t) sizeof (struct Header) >
+       ec->read (ec->cls,
+               &data,
+               sizeof (struct Header)))
+-- 
+cgit v1.1
index c30658fc5c07c81abf64c1042bbffea25ad0b7ae..db1013736cfd29fac5bc31017f579f2bcdcceedc 100644 (file)
@@ -57,6 +57,8 @@ RDEPEND="${COMMON_DEPEND}
        !sci-biology/glimmer
 "
 
+PATCHES=( "${FILESDIR}/${P}-CVE-2017-17440.patch" )
+
 src_prepare() {
        default