Skip site navigation (1)Skip section navigation (2)
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>