aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--code/client/snd_codec_wav.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/code/client/snd_codec_wav.c b/code/client/snd_codec_wav.c
index a60f3da..a020841 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