app-cdr/bchunk: patch CVE-2017-15953, CVE-2017-15954, CVE-2017-15955
authorYegor Timoshenko <yegortimoshenko@gmail.com>
Tue, 31 Oct 2017 06:32:08 +0000 (06:32 +0000)
committerFabian Groffen <grobian@gentoo.org>
Tue, 31 Oct 2017 16:44:07 +0000 (17:44 +0100)
app-cdr/bchunk/bchunk-1.2.0-r3.ebuild [moved from app-cdr/bchunk/bchunk-1.2.0-r2.ebuild with 85% similarity]
app-cdr/bchunk/files/CVE-2017-15953.patch [new file with mode: 0644]
app-cdr/bchunk/files/CVE-2017-15955.patch [new file with mode: 0644]

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 f8387e0cb352f0b113a5c036a91daa9c0e7c3d40..165465a6fd2cecf2075d0160af7d708c9921849a 100644 (file)
@@ -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 (file)
index 0000000..f78bb71
--- /dev/null
@@ -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 (file)
index 0000000..85797fe
--- /dev/null
@@ -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