Message ID | 20191002213740.17936-1-michael@niedermayer.cc |
---|---|
State | Accepted |
Commit | 9b533de28eb19c660c75823ff2af2f8549c4095a |
Headers | show |
ok On 10/2/19, Michael Niedermayer <michael@niedermayer.cc> wrote: > Fixes: null pointer dereference > Fixes: signed integer overflow: 512 * 2147483647 cannot be represented in > type 'int' > Fixes: > 17809/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XMA1_fuzzer-5634409947987968 > > Found-by: continuous fuzzing process > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> > --- > libavcodec/wmaprodec.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c > index d0fa974c80..6ce2dd4adb 100644 > --- a/libavcodec/wmaprodec.c > +++ b/libavcodec/wmaprodec.c > @@ -1902,7 +1902,9 @@ static av_cold int xma_decode_init(AVCodecContext > *avctx) > } > > /* encoder supports up to 64 streams / 64*2 channels (would have to > alloc arrays) */ > - if (avctx->channels > XMA_MAX_CHANNELS || s->num_streams > > XMA_MAX_STREAMS) { > + if (avctx->channels > XMA_MAX_CHANNELS || s->num_streams > > XMA_MAX_STREAMS || > + s->num_streams <= 0 > + ) { > avpriv_request_sample(avctx, "More than %d channels in %d streams", > XMA_MAX_CHANNELS, s->num_streams); > return AVERROR_PATCHWELCOME; > } > -- > 2.23.0 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
On Thu, Oct 03, 2019 at 08:52:49AM +0200, Paul B Mahol wrote:
> ok
will apply
thx
[...]
diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index d0fa974c80..6ce2dd4adb 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -1902,7 +1902,9 @@ static av_cold int xma_decode_init(AVCodecContext *avctx) } /* encoder supports up to 64 streams / 64*2 channels (would have to alloc arrays) */ - if (avctx->channels > XMA_MAX_CHANNELS || s->num_streams > XMA_MAX_STREAMS) { + if (avctx->channels > XMA_MAX_CHANNELS || s->num_streams > XMA_MAX_STREAMS || + s->num_streams <= 0 + ) { avpriv_request_sample(avctx, "More than %d channels in %d streams", XMA_MAX_CHANNELS, s->num_streams); return AVERROR_PATCHWELCOME; }
Fixes: null pointer dereference Fixes: signed integer overflow: 512 * 2147483647 cannot be represented in type 'int' Fixes: 17809/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XMA1_fuzzer-5634409947987968 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/wmaprodec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)