Subject: kern/16652: uaudio(4) mixer values can wrap around from 255 to 0.
To: None <gnats-bugs@gnats.netbsd.org>
From: None <svs@ropnet.ru>
List: netbsd-bugs
Date: 05/03/2002 18:59:07
>Number:         16652
>Category:       kern
>Synopsis:       uaudio(4) mixer values can wrap around from 255 to 0.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri May 03 19:00:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Sergey Svishchev
>Release:        1.5ZC
>Organization:
>Environment:
>Description:

>How-To-Repeat:

>Fix:
Index: sys/dev/usb/uaudio.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/usb/uaudio.c,v
retrieving revision 1.56
diff -u -r1.56 uaudio.c
--- uaudio.c	2002/03/23 17:17:11	1.56
+++ uaudio.c	2002/04/29 22:21:26
@@ -1654,9 +1654,14 @@
 		     mc->type, val, mc->minval, mc->maxval));
 	if (mc->type == MIX_ON_OFF)
 		val = (val != 0);
-	else
+	else {
 		val = ((uaudio_signext(mc->type, val) - mc->minval) * 256
 			+ mc->mul/2) / mc->mul;
+		if (val < 0)
+			val = 0;
+		if (val > 255)
+			val = 255;
+	}
 	DPRINTFN(5, ("val'=%d\n", val));
 	return (val);
 }

>Release-Note:
>Audit-Trail:
>Unformatted: