summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2023-09-30 23:55:20 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2023-10-08 21:36:07 +0200
commitfe6ce28d118d6030984e1ee5c2d92e98514fe3d1 (patch)
tree856c0b96ec9ff68d1e98c8469e44451af1771e56
parent2d6df3719dd4f75b40cdf25a02f3f075b76ed045 (diff)
avformat/xwma: sanity check bits_per_coded_sample
Fixes: signed integer overflow: 65312 * 524296 cannot be represented in type 'int' Fixes: 51896/clusterfuzz-testcase-minimized-ffmpeg_dem_XWMA_fuzzer-6595971445555200 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavformat/xwma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/xwma.c b/libavformat/xwma.c
index 12689f37fd..b830f9ed75 100644
--- a/libavformat/xwma.c
+++ b/libavformat/xwma.c
@@ -151,7 +151,7 @@ static int xwma_read_header(AVFormatContext *s)
st->codecpar->ch_layout.nb_channels);
return AVERROR_INVALIDDATA;
}
- if (!st->codecpar->bits_per_coded_sample) {
+ if (!st->codecpar->bits_per_coded_sample || st->codecpar->bits_per_coded_sample > 64) {
av_log(s, AV_LOG_WARNING, "Invalid bits_per_coded_sample: %d\n",
st->codecpar->bits_per_coded_sample);
return AVERROR_INVALIDDATA;