From 8b3720abce42562bd940d0a4f09e388ddea52fb5 Mon Sep 17 00:00:00 2001 From: Antoine SOULIER Date: Thu, 15 Sep 2022 13:33:07 -0700 Subject: [PATCH] tools: Fix crash can happens on malformed audio wave file --- tools/wave.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/wave.c b/tools/wave.c index ca68e25..bdff777 100644 --- a/tools/wave.c +++ b/tools/wave.c @@ -102,9 +102,12 @@ int wave_read_header(FILE *fp, int *bitdepth, int *samplesize, return -1; if (fread(&format, sizeof(format), 1, fp) != 1 - || format.id != WAVE_FORMAT_ID - || format.fmt != WAVE_FORMAT_PCM - || format.byterate != format.samplerate * format.framesize) + || format.id != WAVE_FORMAT_ID + || format.fmt != WAVE_FORMAT_PCM + || format.channels <= 0 + || format.samplerate <= 0 + || format.framesize <= 0 + || format.byterate != format.samplerate * format.framesize) return -1; fseek(fp, sizeof(format) - (8 + format.size), SEEK_CUR);