commit:     8c1539b16c078e750713e3e0a073f5f95754d16b
Author:     Yegor Timoshenko <yegortimoshenko <AT> gmail <DOT> com>
AuthorDate: Tue Oct 31 06:32:08 2017 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Tue Oct 31 16:44:07 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c1539b1

app-cdr/bchunk: patch CVE-2017-15953, CVE-2017-15954, CVE-2017-15955

 ...hunk-1.2.0-r2.ebuild => bchunk-1.2.0-r3.ebuild} |  1 +
 app-cdr/bchunk/files/CVE-2017-15953.patch          | 25 +++++++++++++++++
 app-cdr/bchunk/files/CVE-2017-15955.patch          | 32 ++++++++++++++++++++++
 3 files changed, 58 insertions(+)

diff --git a/app-cdr/bchunk/bchunk-1.2.0-r2.ebuild 
b/app-cdr/bchunk/bchunk-1.2.0-r3.ebuild
similarity index 85%
rename from app-cdr/bchunk/bchunk-1.2.0-r2.ebuild
rename to app-cdr/bchunk/bchunk-1.2.0-r3.ebuild
index f8387e0cb35..165465a6fd2 100644
--- a/app-cdr/bchunk/bchunk-1.2.0-r2.ebuild
+++ b/app-cdr/bchunk/bchunk-1.2.0-r3.ebuild
@@ -12,6 +12,7 @@ SLOT="0"
 KEYWORDS="amd64 ppc sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos 
~x64-macos ~sparc-solaris ~x86-solaris"
 
 DOCS=( "${P}.lsm" "${PN}.spec" README ChangeLog )
+PATCHES=( "${FILESDIR}/CVE-2017-15953.patch" 
"${FILESDIR}/CVE-2017-15955.patch" )
 
 src_install() {
        dobin "${PN}"

diff --git a/app-cdr/bchunk/files/CVE-2017-15953.patch 
b/app-cdr/bchunk/files/CVE-2017-15953.patch
new file mode 100644
index 00000000000..f78bb7178af
--- /dev/null
+++ b/app-cdr/bchunk/files/CVE-2017-15953.patch
@@ -0,0 +1,25 @@
+--- a/bchunk.c 2017-10-30 18:03:58.658741629 +0000
++++ b/bchunk.c 2017-10-30 19:40:25.558131619 +0000
+@@ -18,6 +18,7 @@
+   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+   */
+
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -271,11 +272,10 @@
+       int16_t i;
+       float fl;
+       
+-      if (!(fname = malloc(strlen(bname) + 8))) {
+-              fprintf(stderr, "main(): malloc() failed, out of memory\n");
++      if (asprintf(&fname, "%s%2.2d.%s", bname, track->num, track->extension) 
== -1) {
++              fprintf(stderr, "writetrack(): asprintf() failed, out of 
memory\n");
+               exit(4);
+       }
+-      sprintf(fname, "%s%2.2d.%s", bname, track->num, track->extension);
+       
+       printf("%2d: %s ", track->num, fname);
+       
+

diff --git a/app-cdr/bchunk/files/CVE-2017-15955.patch 
b/app-cdr/bchunk/files/CVE-2017-15955.patch
new file mode 100644
index 00000000000..85797fe020a
--- /dev/null
+++ b/app-cdr/bchunk/files/CVE-2017-15955.patch
@@ -0,0 +1,32 @@
+--- a/bchunk.c 2017-10-30 18:03:58.658741629 +0000
++++ b/bchunk.c 2017-10-30 19:17:36.732855884 +0000
+@@ -426,11 +426,11 @@
+                       printf("\nTrack ");
+                       if (!(p = strchr(p, ' '))) {
+                               fprintf(stderr, "... ouch, no space after 
TRACK.\n");
+-                              continue;
++                              exit(3);
+                       }
+                       p++;
+                       if (!(t = strchr(p, ' '))) {
+                               fprintf(stderr, "... ouch, no space after track 
number.\n");
+-                              continue;
++                              exit(3);
+                       }
+                       *t = '\0';
+
+@@ -460,12 +460,12 @@
+               } else if ((p = strstr(s, "INDEX"))) {
+                       if (!(p = strchr(p, ' '))) {
+                               printf("... ouch, no space after INDEX.\n");
+-                              continue;
++                              exit(3);
+                       }
+                       p++;
+                       if (!(t = strchr(p, ' '))) {
+                               printf("... ouch, no space after index 
number.\n");
+-                              continue;
++                              exit(3);
+                       }
+                       *t = '\0';
+                       t++;
\ No newline at end of file

Reply via email to