# http://linux.bkbits.net:8080/linux-2.4/gnupatch@404ce5967rY2Ryu6Z_uNbYh643wuFA
# http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0178
# http://www.ultramonkey.org/bugs/cve/CAN-2004-0178.shtml

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/03/08 18:28:54-03:00 andikies@t-online.de 
#   [PATCH] sb16 sample size fix
#   
#   Fix improperly handled 16 bit sample size.  If you use an odd number of
#   bytes in 16 bit mode the driver fails to work.
# 
# drivers/sound/sb_audio.c
#   2004/02/29 13:28:18-03:00 andikies@t-online.de +1 -1
#   sb16 sample size fix
# 
diff -Nru a/drivers/sound/sb_audio.c b/drivers/sound/sb_audio.c
--- a/drivers/sound/sb_audio.c	2004-06-14 03:35:49 -07:00
+++ b/drivers/sound/sb_audio.c	2004-06-14 03:35:49 -07:00
@@ -879,7 +879,7 @@
 			c -= locallen; p += locallen;
 		}
 		/* used = ( samples * 16 bits size ) */
-		*used = len << 1;
+		*used =  max_in  > ( max_out << 1) ? (max_out << 1) : max_in;
 		/* returned = ( samples * 8 bits size ) */
 		*returned = len;
 	}

