ports/75231: [ maintainer ] audio/mpg123: non-critial security fix, rename patches
Roman Bogorodskiy
bogorodskiy at inbox.ru
Sat Dec 18 18:20:24 UTC 2004
>Number: 75231
>Category: ports
>Synopsis: [ maintainer ] audio/mpg123: non-critial security fix, rename patches
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Sat Dec 18 18:20:23 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: Roman Bogorodskiy
>Release: FreeBSD 5.3-RELEASE-p2 i386
>Organization:
>Environment:
System: FreeBSD lame.novel.ru 5.3-RELEASE-p2 FreeBSD 5.3-RELEASE-p2 #3: Sat Dec 11 21:01:26 MSK 2004 root at lame.novel.ru:/usr/obj/usr/src/sys/MIRRORBOX i386
>Description:
- Change patch name style from patch-a[a-z] to patch-$file_to_patch
- Security fix: bof in find_next_file()@mpg123.c, source:
http://tigger.uic.edu/~jlongs2/holes/mpg123.txt. But I has not
succeeded in finding file called "8.list" (refered in the advisory)
so I cannot test whether my patch is correct. I guest, it should be
reviewed by the security team.
- Bump PORTREVISION
>How-To-Repeat:
>Fix:
--- port.mpg123.security begins here ---
diff -ruN mpg123.orig/Makefile mpg123/Makefile
--- mpg123.orig/Makefile Sat Dec 18 20:19:54 2004
+++ mpg123/Makefile Sat Dec 18 20:50:43 2004
@@ -7,7 +7,7 @@
PORTNAME= mpg123
PORTVERSION= 0.59r
-PORTREVISION= 15
+PORTREVISION= 16
CATEGORIES= audio ipv6
MASTER_SITES= http://www.mpg123.de/mpg123/ \
http://www-ti.informatik.uni-tuebingen.de/~hippm/mpg123/
diff -ruN mpg123.orig/files/patch-Makefile mpg123/files/patch-Makefile
--- mpg123.orig/files/patch-Makefile Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-Makefile Tue Oct 26 22:13:46 2004
@@ -0,0 +1,123 @@
+--- Makefile.orig Wed Sep 15 21:14:24 2004
++++ Makefile Wed Sep 15 21:14:41 2004
+@@ -4,13 +4,15 @@
+
+ # Where to install binary and manpage on "make install":
+
+-PREFIX=/usr/local
++#PREFIX=/usr/local
+ BINDIR=$(PREFIX)/bin
+ MANDIR=$(PREFIX)/man
+ SECTION=1
+
+ # Enable the below line If your plathome support IPv6
+-#CFLAGS+= -DINET6
++.if defined(USE_INET6)
++CFLAGS+= -DINET6
++.endif
+ # Additional LIBDIR and libraries if exist
+ IPV6LIBDIR=
+ IPV6LIB=
+@@ -300,6 +302,9 @@
+ #CFLAGS='$(CFLAGS) -DI386_ASSEM -O2 -DREAL_IS_FLOAT -DLINUX -Wall -g'
+ #CFLAGS='$(CFLAGS) -DI386_ASSEM -DREAL_IS_FLOAT -DLINUX -Wall -O2 -m486 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math -malign-loops=2 -malign-jumps=2 -malign-functions=2'
+
++CC ?= cc
++LDFLAGS =
++
+ .if defined(WITH_ICONV)
+ CFLAGS+=-DWITH_ICONV -I${LOCALBASE}/include
+ LDFLAGS+=-L${LOCALBASE}/lib -liconv
+@@ -308,35 +313,62 @@
+ .endif
+ .endif
+
++.if ${MACHINE_ARCH} == "i386"
++ARCHOPT= -funroll-all-loops -ffast-math -fomit-frame-pointer \
++ -DROT_I386 -DI386_ASSEM -DREAL_IS_FLOAT
++ARCHFILES= decode_i386.o
++CFLAGS ?=-O4 -m486
++.if !defined(OPT_ARCH)
++ARCHFILES+= dct64_i386.c
++.else
++.if (${OPT_ARCH} == "i486")
++ARCHOPT+= -DI486_OPT
++ARCHFILES+= decode_i486.o dct64_i486.o dct64_i386.o
++.elif (${OPT_ARCH} == "i586")
++ARCHOPT+= -DPENTIUM_OPT
++ARCHFILES+= decode_i586.o dct64_i386.o
++.elif (${OPT_ARCH} == "3dnow")
++ARCHOPT+= -DPENTIUM_OPT -DUSE_3DNOW
++ARCHFILES+= dct64_3dnow.o decode_3dnow.o
++dct64_3dnow.o:
++ ${INSTALL} ./precompiled/linux-i386/dct64_3dnow.o .
++decode_3dnow.o:
++ ${INSTALL} ./precompiled/linux-i386/decode_3dnow.o .
++.endif
++.endif
++.else
++ARCHOPT= -funroll-loops
++ARCHFILES= decode.o dct64.o
++.endif
++
++CFLAGS +=-Wall -ansi -pedantic ${ARCHOPT} \
++ -DREAD_MMAP -DUSE_MMAP -DOSS -DTERM_CONTROL
++
++.if defined(HAVE_ESOUND)
++CFLAGS +=-I${LOCALBASE}/include
++LDFLAGS+=-L${LOCALBASE}/lib
++.elif defined(HAVE_NAS)
++CFLAGS +=-I${X11BASE}/include -DNAS
++LDFLAGS+=-L${X11BASE}/lib
++.endif
++
+ freebsd:
+- $(MAKE) CC=cc LDFLAGS= \
+- OBJECTS='decode_i386.o dct64_i386.o audio_oss.o' \
+- CFLAGS='$(CFLAGS) -Wall -ansi -pedantic -O4 -m486 -fomit-frame-pointer \
+- -funroll-all-loops -ffast-math -DROT_I386 \
+- -DREAD_MMAP \
+- -DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS' \
++ ${MAKE} OBJECTS='${ARCHFILES} audio_oss.o term.o' \
+ mpg123-make
+
+ freebsd-esd:
+- $(MAKE) CC=cc LDFLAGS= \
+- AUDIO_LIB='-lesd -laudiofile' \
+- OBJECTS='decode_i386.o dct64_i386.o $(GETBITS) audio_esd.o' \
+- CFLAGS='$(CFLAGS) -Wall -ansi -pedantic -O4 -m486 -fomit-frame-pointer \
+- -funroll-all-loops -ffast-math -DROT_I386 \
+- -DREAD_MMAP \
+- -DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS \
+- -I/usr/local/include -L/usr/local/lib \
+- $(CFLAGS)' \
++ $(MAKE) AUDIO_LIB='-lesd -laudiofile' \
++ OBJECTS='${ARCHFILES} audio_esd.o term.o' \
++ mpg123-make
++
++freebsd-nas:
++ $(MAKE) AUDIO_LIB='-laudio -lXau -lXt' \
++ OBJECTS='${ARCHFILES} audio_nas.o term.o' \
+ mpg123-make
+
+ freebsd-frontend:
+- $(MAKE) CC=cc LDFLAGS= \
+- OBJECTS='decode_i386.o dct64_i386.o audio_oss.o \
++ $(MAKE) OBJECTS='${ARCHFILES} audio_oss.o \
+ control_sajber.o control_tk3play.o' \
+- CFLAGS='$(CFLAGS) -Wall -ansi -pedantic -O4 -m486 -fomit-frame-pointer \
+- -funroll-all-loops -ffast-math -DROT_I386 \
+- -DFRONTEND \
+- -DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS' \
+ $(FRONTEND)
+
+
+@@ -575,7 +607,7 @@
+ @ $(MAKE) CFLAGS='$(CFLAGS)' BINNAME=mpg123m mpg123
+
+ mpg123-make:
+- @ $(MAKE) CFLAGS='$(CFLAGS)' BINNAME=mpg123 mpg123
++ @ $(MAKE) LDFLAGS='$(LDFLAGS)' CFLAGS='$(CFLAGS)' BINNAME=mpg123 mpg123
+
+ mpg123: mpg123.o common.o $(OBJECTS) decode_2to1.o decode_4to1.o \
+ tabinit.o audio.o layer1.o layer2.o layer3.o buffer.o \
diff -ruN mpg123.orig/files/patch-aa mpg123/files/patch-aa
--- mpg123.orig/files/patch-aa Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-aa Thu Jan 1 03:00:00 1970
@@ -1,123 +0,0 @@
---- Makefile.orig Wed Sep 15 21:14:24 2004
-+++ Makefile Wed Sep 15 21:14:41 2004
-@@ -4,13 +4,15 @@
-
- # Where to install binary and manpage on "make install":
-
--PREFIX=/usr/local
-+#PREFIX=/usr/local
- BINDIR=$(PREFIX)/bin
- MANDIR=$(PREFIX)/man
- SECTION=1
-
- # Enable the below line If your plathome support IPv6
--#CFLAGS+= -DINET6
-+.if defined(USE_INET6)
-+CFLAGS+= -DINET6
-+.endif
- # Additional LIBDIR and libraries if exist
- IPV6LIBDIR=
- IPV6LIB=
-@@ -300,6 +302,9 @@
- #CFLAGS='$(CFLAGS) -DI386_ASSEM -O2 -DREAL_IS_FLOAT -DLINUX -Wall -g'
- #CFLAGS='$(CFLAGS) -DI386_ASSEM -DREAL_IS_FLOAT -DLINUX -Wall -O2 -m486 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math -malign-loops=2 -malign-jumps=2 -malign-functions=2'
-
-+CC ?= cc
-+LDFLAGS =
-+
- .if defined(WITH_ICONV)
- CFLAGS+=-DWITH_ICONV -I${LOCALBASE}/include
- LDFLAGS+=-L${LOCALBASE}/lib -liconv
-@@ -308,35 +313,62 @@
- .endif
- .endif
-
-+.if ${MACHINE_ARCH} == "i386"
-+ARCHOPT= -funroll-all-loops -ffast-math -fomit-frame-pointer \
-+ -DROT_I386 -DI386_ASSEM -DREAL_IS_FLOAT
-+ARCHFILES= decode_i386.o
-+CFLAGS ?=-O4 -m486
-+.if !defined(OPT_ARCH)
-+ARCHFILES+= dct64_i386.c
-+.else
-+.if (${OPT_ARCH} == "i486")
-+ARCHOPT+= -DI486_OPT
-+ARCHFILES+= decode_i486.o dct64_i486.o dct64_i386.o
-+.elif (${OPT_ARCH} == "i586")
-+ARCHOPT+= -DPENTIUM_OPT
-+ARCHFILES+= decode_i586.o dct64_i386.o
-+.elif (${OPT_ARCH} == "3dnow")
-+ARCHOPT+= -DPENTIUM_OPT -DUSE_3DNOW
-+ARCHFILES+= dct64_3dnow.o decode_3dnow.o
-+dct64_3dnow.o:
-+ ${INSTALL} ./precompiled/linux-i386/dct64_3dnow.o .
-+decode_3dnow.o:
-+ ${INSTALL} ./precompiled/linux-i386/decode_3dnow.o .
-+.endif
-+.endif
-+.else
-+ARCHOPT= -funroll-loops
-+ARCHFILES= decode.o dct64.o
-+.endif
-+
-+CFLAGS +=-Wall -ansi -pedantic ${ARCHOPT} \
-+ -DREAD_MMAP -DUSE_MMAP -DOSS -DTERM_CONTROL
-+
-+.if defined(HAVE_ESOUND)
-+CFLAGS +=-I${LOCALBASE}/include
-+LDFLAGS+=-L${LOCALBASE}/lib
-+.elif defined(HAVE_NAS)
-+CFLAGS +=-I${X11BASE}/include -DNAS
-+LDFLAGS+=-L${X11BASE}/lib
-+.endif
-+
- freebsd:
-- $(MAKE) CC=cc LDFLAGS= \
-- OBJECTS='decode_i386.o dct64_i386.o audio_oss.o' \
-- CFLAGS='$(CFLAGS) -Wall -ansi -pedantic -O4 -m486 -fomit-frame-pointer \
-- -funroll-all-loops -ffast-math -DROT_I386 \
-- -DREAD_MMAP \
-- -DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS' \
-+ ${MAKE} OBJECTS='${ARCHFILES} audio_oss.o term.o' \
- mpg123-make
-
- freebsd-esd:
-- $(MAKE) CC=cc LDFLAGS= \
-- AUDIO_LIB='-lesd -laudiofile' \
-- OBJECTS='decode_i386.o dct64_i386.o $(GETBITS) audio_esd.o' \
-- CFLAGS='$(CFLAGS) -Wall -ansi -pedantic -O4 -m486 -fomit-frame-pointer \
-- -funroll-all-loops -ffast-math -DROT_I386 \
-- -DREAD_MMAP \
-- -DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS \
-- -I/usr/local/include -L/usr/local/lib \
-- $(CFLAGS)' \
-+ $(MAKE) AUDIO_LIB='-lesd -laudiofile' \
-+ OBJECTS='${ARCHFILES} audio_esd.o term.o' \
-+ mpg123-make
-+
-+freebsd-nas:
-+ $(MAKE) AUDIO_LIB='-laudio -lXau -lXt' \
-+ OBJECTS='${ARCHFILES} audio_nas.o term.o' \
- mpg123-make
-
- freebsd-frontend:
-- $(MAKE) CC=cc LDFLAGS= \
-- OBJECTS='decode_i386.o dct64_i386.o audio_oss.o \
-+ $(MAKE) OBJECTS='${ARCHFILES} audio_oss.o \
- control_sajber.o control_tk3play.o' \
-- CFLAGS='$(CFLAGS) -Wall -ansi -pedantic -O4 -m486 -fomit-frame-pointer \
-- -funroll-all-loops -ffast-math -DROT_I386 \
-- -DFRONTEND \
-- -DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS' \
- $(FRONTEND)
-
-
-@@ -575,7 +607,7 @@
- @ $(MAKE) CFLAGS='$(CFLAGS)' BINNAME=mpg123m mpg123
-
- mpg123-make:
-- @ $(MAKE) CFLAGS='$(CFLAGS)' BINNAME=mpg123 mpg123
-+ @ $(MAKE) LDFLAGS='$(LDFLAGS)' CFLAGS='$(CFLAGS)' BINNAME=mpg123 mpg123
-
- mpg123: mpg123.o common.o $(OBJECTS) decode_2to1.o decode_4to1.o \
- tabinit.o audio.o layer1.o layer2.o layer3.o buffer.o \
diff -ruN mpg123.orig/files/patch-ab mpg123/files/patch-ab
--- mpg123.orig/files/patch-ab Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-ab Thu Jan 1 03:00:00 1970
@@ -1,51 +0,0 @@
---- mpg123.c.orig Tue Aug 21 19:48:17 2001
-+++ mpg123.c Tue Aug 21 19:49:02 2001
-@@ -27,6 +27,10 @@
- #include <sched.h>
- #endif
-
-+#ifdef __FreeBSD__
-+#include <ieeefp.h>
-+#endif
-+
- #include "mpg123.h"
- #include "getlopt.h"
- #include "buffer.h"
-@@ -223,7 +227,7 @@
- {
- int loop, rannum;
-
-- srand(time(NULL));
-+ srandomdev();
- if(shuffleord)
- free(shuffleord);
- shuffleord = (int *) malloc((numfiles + 1) * sizeof(int));
-@@ -239,7 +243,7 @@
- /* now shuffle them */
- if(numfiles >= 2) {
- for (loop = 0; loop < numfiles; loop++) {
-- rannum = (rand() % (numfiles * 4 - 4)) / 4;
-+ rannum = (random() % (numfiles * 4 - 4)) / 4;
- rannum += (rannum >= loop);
- shuffleord[loop] ^= shuffleord[rannum];
- shuffleord[rannum] ^= shuffleord[loop];
-@@ -381,7 +385,7 @@
- curfile++;
- }
- else {
-- newfile = shufflist[ rand() % shuffle_listsize ];
-+ newfile = shufflist[ random() % shuffle_listsize ];
- }
-
- return newfile;
-@@ -784,6 +788,10 @@
- _wildcard(&argc,&argv);
- #endif
-
-+#ifdef __FreeBSD__
-+ fpsetmask(0);
-+#endif
-+
- if(sizeof(short) != 2) {
- fprintf(stderr,"Ouch SHORT has size of %d bytes (required: '2')\n",(int)sizeof(short));
- exit(1);
diff -ruN mpg123.orig/files/patch-ac mpg123/files/patch-ac
--- mpg123.orig/files/patch-ac Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-ac Thu Jan 1 03:00:00 1970
@@ -1,11 +0,0 @@
---- audio_esd.c-- Fri May 28 20:36:29 1999
-+++ audio_esd.c Thu Nov 11 10:14:30 1999
-@@ -75,7 +75,7 @@
- else if (ai->rate > esd_rate)
- return -1;
-
-- ai->fn = esd_play_stream_fallback(format, ai->rate, esdserver, "mpg123");
-+ ai->fn = esd_play_stream_fallback(format, ai->rate, NULL, "mpg123");
- return (ai->fn);
- }
-
diff -ruN mpg123.orig/files/patch-ae mpg123/files/patch-ae
--- mpg123.orig/files/patch-ae Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-ae Thu Jan 1 03:00:00 1970
@@ -1,11 +0,0 @@
---- control_generic.c.orig Fri Mar 2 16:10:49 2001
-+++ control_generic.c Fri Mar 2 16:10:51 2001
-@@ -26,6 +26,8 @@
- extern int buffer_pid;
- extern int tabsel_123[2][3][16];
-
-+void generic_sendmsg (char *, ...) __printflike(1,2);
-+
- void generic_sendmsg (char *fmt, ...)
- {
- va_list ap;
diff -ruN mpg123.orig/files/patch-af mpg123/files/patch-af
--- mpg123.orig/files/patch-af Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-af Thu Jan 1 03:00:00 1970
@@ -1,11 +0,0 @@
---- audio_oss.c.orig Sat Jan 31 23:14:08 1998
-+++ audio_oss.c Sun May 12 15:35:49 2002
-@@ -31,7 +31,7 @@
- #elif defined(__bsdi__)
- #include <sys/soundcard.h>
- #else
--#include <machine/soundcard.h>
-+#include <sys/soundcard.h>
- #endif
-
- int audio_open(struct audio_info_struct *ai)
diff -ruN mpg123.orig/files/patch-ag mpg123/files/patch-ag
--- mpg123.orig/files/patch-ag Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-ag Thu Jan 1 03:00:00 1970
@@ -1,17 +0,0 @@
---- mpg123.c.orig Fri Jun 18 14:18:11 1999
-+++ mpg123.c Mon Feb 10 11:58:08 2003
-@@ -920,10 +920,10 @@
-
- #if !defined(GENERIC)
- {
-- const char *term_type;
-- term_type = getenv("TERM");
-- if (!strcmp(term_type,"xterm"))
-- {
-+ const char *term_type;
-+
-+ if (((term_type = getenv("TERM")) != NULL)
-+ && (!strcmp(term_type,"xterm"))) {
- fprintf(stderr, "\033]0;%s\007", filename);
- }
- }
diff -ruN mpg123.orig/files/patch-ah mpg123/files/patch-ah
--- mpg123.orig/files/patch-ah Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-ah Thu Jan 1 03:00:00 1970
@@ -1,56 +0,0 @@
---- layer3.c.xx Wed Oct 22 19:19:01 2003
-+++ layer3.c Wed Oct 22 19:20:30 2003
-@@ -608,7 +608,7 @@
- * Dequantize samples (includes huffman decoding)
- */
- /* 24 is enough because tab13 has max. a 19 bit huffvector */
--#ifdef __alpha
-+#ifndef __i386__
- #define BITSHIFT ((sizeof(int)-1)*8)
- #define REFRESH_MASK \
- while(num < BITSHIFT) { \
-@@ -634,7 +634,7 @@
- int *me;
-
- int num=getbitoffset();
--#ifdef __alpha
-+#ifndef __i386__
- int mask = (int) getbits(num)<<(BITSHIFT+8-num);
- #else
- long mask = (long) getbits(num)<<(BITSHIFT+8-num);
-@@ -722,7 +722,7 @@
- if(x == 15 && h->linbits) {
- max[lwin] = cb;
- REFRESH_MASK;
--#ifdef __alpha
-+#ifndef __i386__
- x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
- #else
- x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-@@ -750,7 +750,7 @@
- if(y == 15 && h->linbits) {
- max[lwin] = cb;
- REFRESH_MASK;
--#ifdef __alpha
-+#ifndef __i386__
- y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
- #else
- y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-@@ -904,7 +904,7 @@
- if (x == 15 && h->linbits) {
- max = cb;
- REFRESH_MASK;
--#ifdef __alpha
-+#ifndef __i386__
- x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
- #else
- x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
-@@ -932,7 +932,7 @@
- if (y == 15 && h->linbits) {
- max = cb;
- REFRESH_MASK;
--#ifdef __alpha
-+#ifndef __i386__
- y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
- #else
- y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
diff -ruN mpg123.orig/files/patch-ai mpg123/files/patch-ai
--- mpg123.orig/files/patch-ai Sat Dec 18 20:19:54 2004
+++ mpg123/files/patch-ai Thu Jan 1 03:00:00 1970
@@ -1,41 +0,0 @@
---- audio.c.orig Tue Apr 6 17:53:05 1999
-+++ audio.c Sat Jan 31 18:41:14 2004
-@@ -75,7 +75,11 @@
- return;
- }
-
-+#ifdef WITH_FREEBSD_DSP_ONLY
-+ memset(capabilities,1,sizeof(capabilities));
-+#else
- memset(capabilities,0,sizeof(capabilities));
-+#endif
- if(param.force_rate) {
- rates[NUM_RATES-1] = param.force_rate;
- k1 = NUM_RATES;
-@@ -86,8 +90,16 @@
- exit(1);
- }
-
-+#ifdef WITH_FREEBSD_DSP_ONLY
-+ if(param.force_rate)
-+#endif
- for(i=0;i<NUM_CHANNELS;i++) {
-- for(j=0;j<NUM_RATES;j++) {
-+#ifdef WITH_FREEBSD_DSP_ONLY
-+ j = NUM_RATES - 1;
-+#else
-+ for(j=0;j<NUM_RATES;j++)
-+#endif
-+ {
- ai1.channels = channels[i];
- ai1.rate = rates[j];
- fmts = audio_get_formats(&ai1);
-@@ -96,6 +108,8 @@
- for(k=0;k<NUM_ENCODINGS;k++) {
- if((fmts & encodings[k]) == encodings[k])
- capabilities[i][k][j] = 1;
-+ else
-+ capabilities[i][k][j] = 0;
- }
- }
- }
diff -ruN mpg123.orig/files/patch-audio.c mpg123/files/patch-audio.c
--- mpg123.orig/files/patch-audio.c Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-audio.c Tue Oct 26 22:13:46 2004
@@ -0,0 +1,41 @@
+--- audio.c.orig Tue Apr 6 17:53:05 1999
++++ audio.c Sat Jan 31 18:41:14 2004
+@@ -75,7 +75,11 @@
+ return;
+ }
+
++#ifdef WITH_FREEBSD_DSP_ONLY
++ memset(capabilities,1,sizeof(capabilities));
++#else
+ memset(capabilities,0,sizeof(capabilities));
++#endif
+ if(param.force_rate) {
+ rates[NUM_RATES-1] = param.force_rate;
+ k1 = NUM_RATES;
+@@ -86,8 +90,16 @@
+ exit(1);
+ }
+
++#ifdef WITH_FREEBSD_DSP_ONLY
++ if(param.force_rate)
++#endif
+ for(i=0;i<NUM_CHANNELS;i++) {
+- for(j=0;j<NUM_RATES;j++) {
++#ifdef WITH_FREEBSD_DSP_ONLY
++ j = NUM_RATES - 1;
++#else
++ for(j=0;j<NUM_RATES;j++)
++#endif
++ {
+ ai1.channels = channels[i];
+ ai1.rate = rates[j];
+ fmts = audio_get_formats(&ai1);
+@@ -96,6 +108,8 @@
+ for(k=0;k<NUM_ENCODINGS;k++) {
+ if((fmts & encodings[k]) == encodings[k])
+ capabilities[i][k][j] = 1;
++ else
++ capabilities[i][k][j] = 0;
+ }
+ }
+ }
diff -ruN mpg123.orig/files/patch-audio_esd.c mpg123/files/patch-audio_esd.c
--- mpg123.orig/files/patch-audio_esd.c Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-audio_esd.c Tue Oct 26 22:13:46 2004
@@ -0,0 +1,11 @@
+--- audio_esd.c-- Fri May 28 20:36:29 1999
++++ audio_esd.c Thu Nov 11 10:14:30 1999
+@@ -75,7 +75,7 @@
+ else if (ai->rate > esd_rate)
+ return -1;
+
+- ai->fn = esd_play_stream_fallback(format, ai->rate, esdserver, "mpg123");
++ ai->fn = esd_play_stream_fallback(format, ai->rate, NULL, "mpg123");
+ return (ai->fn);
+ }
+
diff -ruN mpg123.orig/files/patch-audio_oss.c mpg123/files/patch-audio_oss.c
--- mpg123.orig/files/patch-audio_oss.c Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-audio_oss.c Tue Oct 26 22:13:46 2004
@@ -0,0 +1,11 @@
+--- audio_oss.c.orig Sat Jan 31 23:14:08 1998
++++ audio_oss.c Sun May 12 15:35:49 2002
+@@ -31,7 +31,7 @@
+ #elif defined(__bsdi__)
+ #include <sys/soundcard.h>
+ #else
+-#include <machine/soundcard.h>
++#include <sys/soundcard.h>
+ #endif
+
+ int audio_open(struct audio_info_struct *ai)
diff -ruN mpg123.orig/files/patch-control_generic.c mpg123/files/patch-control_generic.c
--- mpg123.orig/files/patch-control_generic.c Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-control_generic.c Tue Oct 26 22:13:46 2004
@@ -0,0 +1,11 @@
+--- control_generic.c.orig Fri Mar 2 16:10:49 2001
++++ control_generic.c Fri Mar 2 16:10:51 2001
+@@ -26,6 +26,8 @@
+ extern int buffer_pid;
+ extern int tabsel_123[2][3][16];
+
++void generic_sendmsg (char *, ...) __printflike(1,2);
++
+ void generic_sendmsg (char *fmt, ...)
+ {
+ va_list ap;
diff -ruN mpg123.orig/files/patch-layer3.c mpg123/files/patch-layer3.c
--- mpg123.orig/files/patch-layer3.c Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-layer3.c Tue Oct 26 22:13:46 2004
@@ -0,0 +1,56 @@
+--- layer3.c.xx Wed Oct 22 19:19:01 2003
++++ layer3.c Wed Oct 22 19:20:30 2003
+@@ -608,7 +608,7 @@
+ * Dequantize samples (includes huffman decoding)
+ */
+ /* 24 is enough because tab13 has max. a 19 bit huffvector */
+-#ifdef __alpha
++#ifndef __i386__
+ #define BITSHIFT ((sizeof(int)-1)*8)
+ #define REFRESH_MASK \
+ while(num < BITSHIFT) { \
+@@ -634,7 +634,7 @@
+ int *me;
+
+ int num=getbitoffset();
+-#ifdef __alpha
++#ifndef __i386__
+ int mask = (int) getbits(num)<<(BITSHIFT+8-num);
+ #else
+ long mask = (long) getbits(num)<<(BITSHIFT+8-num);
+@@ -722,7 +722,7 @@
+ if(x == 15 && h->linbits) {
+ max[lwin] = cb;
+ REFRESH_MASK;
+-#ifdef __alpha
++#ifndef __i386__
+ x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
+ #else
+ x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
+@@ -750,7 +750,7 @@
+ if(y == 15 && h->linbits) {
+ max[lwin] = cb;
+ REFRESH_MASK;
+-#ifdef __alpha
++#ifndef __i386__
+ y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
+ #else
+ y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
+@@ -904,7 +904,7 @@
+ if (x == 15 && h->linbits) {
+ max = cb;
+ REFRESH_MASK;
+-#ifdef __alpha
++#ifndef __i386__
+ x += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
+ #else
+ x += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
+@@ -932,7 +932,7 @@
+ if (y == 15 && h->linbits) {
+ max = cb;
+ REFRESH_MASK;
+-#ifdef __alpha
++#ifndef __i386__
+ y += ((unsigned int) mask) >> (BITSHIFT+8-h->linbits);
+ #else
+ y += ((unsigned long) mask) >> (BITSHIFT+8-h->linbits);
diff -ruN mpg123.orig/files/patch-mpg123.c mpg123/files/patch-mpg123.c
--- mpg123.orig/files/patch-mpg123.c Thu Jan 1 03:00:00 1970
+++ mpg123/files/patch-mpg123.c Sat Dec 18 20:45:54 2004
@@ -0,0 +1,79 @@
+--- mpg123.c.orig Sat Dec 18 20:25:54 2004
++++ mpg123.c Sat Dec 18 20:45:09 2004
+@@ -27,6 +27,10 @@
+ #include <sched.h>
+ #endif
+
++#ifdef __FreeBSD__
++#include <ieeefp.h>
++#endif
++
+ #include "mpg123.h"
+ #include "getlopt.h"
+ #include "buffer.h"
+@@ -223,7 +227,7 @@
+ {
+ int loop, rannum;
+
+- srand(time(NULL));
++ srandomdev();
+ if(shuffleord)
+ free(shuffleord);
+ shuffleord = (int *) malloc((numfiles + 1) * sizeof(int));
+@@ -239,7 +243,7 @@
+ /* now shuffle them */
+ if(numfiles >= 2) {
+ for (loop = 0; loop < numfiles; loop++) {
+- rannum = (rand() % (numfiles * 4 - 4)) / 4;
++ rannum = (random() % (numfiles * 4 - 4)) / 4;
+ rannum += (rannum >= loop);
+ shuffleord[loop] ^= shuffleord[rannum];
+ shuffleord[rannum] ^= shuffleord[loop];
+@@ -307,9 +311,9 @@
+ if (line[0]=='\0' || line[0]=='#')
+ continue;
+ if ((listnamedir) && (line[0]!='/') && (line[0]!='\\')){
+- strcpy (linetmp, listnamedir);
+- strcat (linetmp, line);
+- strcpy (line, linetmp);
++ strncpy (linetmp, listnamedir, sizeof(linetmp));
++ strncat (linetmp, line, sizeof(linetmp) - sizeof(line) - 1);
++ strncpy (line, linetmp, sizeof(linetmp));
+ }
+ return (line);
+ }
+@@ -381,7 +385,7 @@
+ curfile++;
+ }
+ else {
+- newfile = shufflist[ rand() % shuffle_listsize ];
++ newfile = shufflist[ random() % shuffle_listsize ];
+ }
+
+ return newfile;
+@@ -787,6 +791,10 @@
+ _wildcard(&argc,&argv);
+ #endif
+
++#ifdef __FreeBSD__
++ fpsetmask(0);
++#endif
++
+ if(sizeof(short) != 2) {
+ fprintf(stderr,"Ouch SHORT has size of %d bytes (required: '2')\n",(int)sizeof(short));
+ exit(1);
+@@ -926,10 +934,10 @@
+
+ #if !defined(GENERIC)
+ {
+- const char *term_type;
+- term_type = getenv("TERM");
+- if (!strcmp(term_type,"xterm"))
+- {
++ const char *term_type;
++
++ if (((term_type = getenv("TERM")) != NULL)
++ && (!strcmp(term_type,"xterm"))) {
+ fprintf(stderr, "\033]0;%s\007", filename);
+ }
+ }
--- port.mpg123.security ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list