[FFmpeg-devel,1/4] avcodec/microdvddec: limit style characters in parsing

Submitted by Michael Niedermayer on Aug. 4, 2018, 12:58 a.m.

Details

Message ID 20180804005833.16836-1-michael@niedermayer.cc
State Accepted
Commit f91e7ec9dfb32dd27c2474de4f98a2e47126f7a7
Headers show

Commit Message

Michael Niedermayer Aug. 4, 2018, 12:58 a.m.
Fixes: Timeout
Fixes: 9293/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MICRODVD_fuzzer-5643972541153280

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

Comments

Michael Niedermayer Aug. 12, 2018, 7:50 p.m.
On Sat, Aug 04, 2018 at 02:58:30AM +0200, Michael Niedermayer wrote:
> Fixes: Timeout
> Fixes: 9293/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MICRODVD_fuzzer-5643972541153280
> 
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/microdvddec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

will apply patchset

[...]

Patch hide | download patch | download mbox

diff --git a/libavcodec/microdvddec.c b/libavcodec/microdvddec.c
index 4a34267793..dad0ec8a22 100644
--- a/libavcodec/microdvddec.c
+++ b/libavcodec/microdvddec.c
@@ -99,7 +99,7 @@  static char *microdvd_load_tags(struct microdvd_tag *tags, char *s)
         case 'Y':
             tag.persistent = MICRODVD_PERSISTENT_ON;
         case 'y':
-            while (*s && *s != '}') {
+            while (*s && *s != '}' && s - start < 256) {
                 int style_index = indexof(MICRODVD_STYLES, *s);
 
                 if (style_index >= 0)