Message ID | 20180408012944.9406-1-michael@niedermayer.cc |
---|---|
State | Accepted |
Commit | 249aca8f98ff7fb09c12ea68e23c862c62203b95 |
Headers | show |
On Sun, 8 Apr 2018 03:29:44 +0200 Michael Niedermayer <michael@niedermayer.cc> wrote: > Limits based on 3GPP TS 26.245 V14.0.0 > Fixes: Timeout > Fixes: > 6377/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MOVTEXT_fuzzer-5175929115508736 > > Found-by: continuous fuzzing process > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- > libavcodec/movtextdec.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c > index 89ac791602..c38c5edce6 100644 > --- a/libavcodec/movtextdec.c > +++ b/libavcodec/movtextdec.c > @@ -299,6 +299,14 @@ static int decode_styl(const uint8_t *tsmb, > MovTextContext *m, AVPacket *avpkt) m->s_temp->style_start = > AV_RB16(tsmb); tsmb += 2; > m->s_temp->style_end = AV_RB16(tsmb); > + > + if ( m->s_temp->style_end < m->s_temp->style_start > + || (m->count_s && m->s_temp->style_start < > m->s[m->count_s - 1]->style_end)) { > + av_freep(&m->s_temp); > + mov_text_cleanup(m); > + return AVERROR(ENOMEM); > + } > + > tsmb += 2; > m->s_temp->style_fontID = AV_RB16(tsmb); > tsmb += 2; LGTM. --phil
On Sat, Apr 07, 2018 at 08:33:11PM -0700, Philip Langdale wrote: > On Sun, 8 Apr 2018 03:29:44 +0200 > Michael Niedermayer <michael@niedermayer.cc> wrote: > > > Limits based on 3GPP TS 26.245 V14.0.0 > > Fixes: Timeout > > Fixes: > > 6377/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MOVTEXT_fuzzer-5175929115508736 > > > > Found-by: continuous fuzzing process > > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- > > libavcodec/movtextdec.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c > > index 89ac791602..c38c5edce6 100644 > > --- a/libavcodec/movtextdec.c > > +++ b/libavcodec/movtextdec.c > > @@ -299,6 +299,14 @@ static int decode_styl(const uint8_t *tsmb, > > MovTextContext *m, AVPacket *avpkt) m->s_temp->style_start = > > AV_RB16(tsmb); tsmb += 2; > > m->s_temp->style_end = AV_RB16(tsmb); > > + > > + if ( m->s_temp->style_end < m->s_temp->style_start > > + || (m->count_s && m->s_temp->style_start < > > m->s[m->count_s - 1]->style_end)) { > > + av_freep(&m->s_temp); > > + mov_text_cleanup(m); > > + return AVERROR(ENOMEM); > > + } > > + > > tsmb += 2; > > m->s_temp->style_fontID = AV_RB16(tsmb); > > tsmb += 2; > > LGTM. will apply thx [...]
diff --git a/libavcodec/movtextdec.c b/libavcodec/movtextdec.c index 89ac791602..c38c5edce6 100644 --- a/libavcodec/movtextdec.c +++ b/libavcodec/movtextdec.c @@ -299,6 +299,14 @@ static int decode_styl(const uint8_t *tsmb, MovTextContext *m, AVPacket *avpkt) m->s_temp->style_start = AV_RB16(tsmb); tsmb += 2; m->s_temp->style_end = AV_RB16(tsmb); + + if ( m->s_temp->style_end < m->s_temp->style_start + || (m->count_s && m->s_temp->style_start < m->s[m->count_s - 1]->style_end)) { + av_freep(&m->s_temp); + mov_text_cleanup(m); + return AVERROR(ENOMEM); + } + tsmb += 2; m->s_temp->style_fontID = AV_RB16(tsmb); tsmb += 2;
Limits based on 3GPP TS 26.245 V14.0.0 Fixes: Timeout Fixes: 6377/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MOVTEXT_fuzzer-5175929115508736 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/movtextdec.c | 8 ++++++++ 1 file changed, 8 insertions(+)