While I was digging inside the deadbeef/dumb problem, I found this.

Apply the fix for CVE-2006-3668 every $major_linux_distro has:

Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/dumb/Makefile,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 Makefile
--- Makefile    10 Mar 2013 22:55:02 -0000      1.7
+++ Makefile    11 Oct 2013 14:44:58 -0000
@@ -3,7 +3,7 @@
 COMMENT=       IT/MOD/XM player and library
 
 DISTNAME=      dumb-0.9.3
-REVISION=      0
+REVISION=      1
 
 CATEGORIES=    audio
 
Index: patches/patch-src_it_itread_c
===================================================================
RCS file: patches/patch-src_it_itread_c
diff -N patches/patch-src_it_itread_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_it_itread_c       11 Oct 2013 14:44:58 -0000
@@ -0,0 +1,19 @@
+$OpenBSD$
+
+Fix heap-based buffer overflow in the it_read_envelope function
+(CVE-2006-3668)
+
+--- src/it/itread.c.orig       Mon Aug  8 02:18:41 2005
++++ src/it/itread.c    Fri Oct 11 16:37:22 2013
+@@ -292,6 +292,11 @@ static int it_read_envelope(IT_ENVELOPE *envelope, DUM
+ 
+       envelope->flags = dumbfile_getc(f);
+       envelope->n_nodes = dumbfile_getc(f);
++      if(envelope->n_nodes > 25) {
++              TRACE("IT error: wrong number of envelope nodes (%d)\n", 
envelope->n_nodes);
++              envelope->n_nodes = 0;
++              return -1;
++      }
+       envelope->loop_start = dumbfile_getc(f);
+       envelope->loop_end = dumbfile_getc(f);
+       envelope->sus_loop_start = dumbfile_getc(f);

Reply via email to