Date: Sat, 18 Dec 2004 21:13:23 +0300 From: Roman Bogorodskiy <bogorodskiy@inbox.ru> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/75231: [ maintainer ] audio/mpg123: non-critial security fix, rename patches Message-ID: <E1Cfj50-0002WD-00.bogorodskiy-inbox-ru@mx2.mail.ru> Resent-Message-ID: <200412181820.iBIIKOWp071888@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1Cfj50-0002WD-00.bogorodskiy-inbox-ru>