From cb1a097db7d20df43c3a55ae4047881c8d5c0b83 Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Tue, 21 Feb 2006 22:29:29 +0000 Subject: [PATCH] * Fix to half of bug #2600 (Refuse to load RIFF files with less than 8 bits per sample) --- code/client/snd_codec_wav.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/client/snd_codec_wav.c b/code/client/snd_codec_wav.c index a60f3da7..a0208418 100644 --- a/code/client/snd_codec_wav.c +++ b/code/client/snd_codec_wav.c @@ -132,6 +132,7 @@ static qboolean S_ReadRIFFHeader(fileHandle_t file, snd_info_t *info) { char dump[16]; int wav_format; + int bits; int fmtlen = 0; // skip the riff wav header @@ -150,7 +151,15 @@ static qboolean S_ReadRIFFHeader(fileHandle_t file, snd_info_t *info) info->rate = FGetLittleLong(file); FGetLittleLong(file); FGetLittleShort(file); - info->width = FGetLittleShort(file) / 8; + bits = FGetLittleShort(file); + + if( bits < 8 ) + { + Com_Printf( S_COLOR_RED "ERROR: Less than 8 bit sound is not supported\n"); + return qfalse; + } + + info->width = bits / 8; info->dataofs = 0; // Skip the rest of the format chunk if required