diff mbox

[FFmpeg-devel,1/2] avcodec/h263dec: Check slice_ret in mspeg4 slice loop

Message ID 20180422202032.21067-1-michael@niedermayer.cc
State Accepted
Commit de841fbea7655b74a9663001e01008a86c88779a
Headers show

Commit Message

Michael Niedermayer April 22, 2018, 8:20 p.m. UTC
Fixes infinite loop
Fixes: 6858/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_MSMPEG4V3_fuzzer-4681563766784000
Fixes: 6890/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_WMV1_fuzzer-4756103142309888

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/h263dec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Niedermayer April 25, 2018, 8:47 p.m. UTC | #1
On Sun, Apr 22, 2018 at 10:20:31PM +0200, Michael Niedermayer wrote:
> Fixes infinite loop
> Fixes: 6858/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_MSMPEG4V3_fuzzer-4681563766784000
> Fixes: 6890/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_WMV1_fuzzer-4756103142309888
> 
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/h263dec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

will apply the patchset

[...]
diff mbox

Patch

diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 484bf39578..eae29fa438 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -641,7 +641,7 @@  retry:
     slice_ret = decode_slice(s);
     while (s->mb_y < s->mb_height) {
         if (s->msmpeg4_version) {
-            if (s->slice_height == 0 || s->mb_x != 0 ||
+            if (s->slice_height == 0 || s->mb_x != 0 || slice_ret < 0 ||
                 (s->mb_y % s->slice_height) != 0 || get_bits_left(&s->gb) < 0)
                 break;
         } else {