On Mon, Mar 09, 2020 at 05:57:50AM +0100, Andreas Rheinhardt wrote: > Michael Niedermayer: > > Fixes: Assertion failure > > Fixes: > > 19629/clusterfuzz-testcase-minimized-ffmpeg_BSF_H264_METADATA_fuzzer-5676822528524288 > > > > Found-by: continuous fuzzing process > > https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > > Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > > --- > > libavcodec/cbs_h2645.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c > > index c8347ba5fa..7427eefa30 100644 > > --- a/libavcodec/cbs_h2645.c > > +++ b/libavcodec/cbs_h2645.c > > @@ -870,7 +870,8 @@ static int cbs_h264_read_nal_unit(CodedBitstreamContext > > *ctx, > > "from slice data.\n", z); > > len -= z; > > } > > - > > + if (len <= pos / 8) > > + return AVERROR_INVALIDDATA; > > slice->data_size = len - pos / 8; > > slice->data_ref = av_buffer_ref(unit->data_ref); > > if (!slice->data_ref) > > @@ -1052,7 +1053,8 @@ static int > > cbs_h265_read_nal_unit(CodedBitstreamContext *ctx, > > "from slice data.\n", z); > > len -= z; > > } > > - > > + if (len <= pos / 8) > > + return AVERROR_INVALIDDATA; > > slice->data_size = len - pos / 8; > > slice->data_ref = av_buffer_ref(unit->data_ref); > > if (!slice->data_ref) > > > > Imagine you have CAVLC encoded H.264 where there is nothing after the > header except zero bits and where the slice header is not > byte-aligned. Then av_assert0(temp) in cbs_h2645_write_slice_data() > will be triggered both now as well as with your patch, because your > check is too crude. > > I have already sent a patch [2] for this. It presupposes [1].
the assert you speak about wasnt the one failing for this. but your patches are a nicer solution so ill apply them Thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Awnsering whenever a program halts or runs forever is On a turing machine, in general impossible (turings halting problem). On any real computer, always possible as a real computer has a finite number of states N, and will either halt in less than N cycles or never halt.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".