On Wed, Aug 19, 2020 at 12:00:37AM +0200, Andreas Rheinhardt wrote: > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > --- > The memleak can be reproduced with e.g. the first 163 bytes of > https://samples.ffmpeg.org/archive/all/avi+dvvideo+pcm_s16le++ffmpeg-avidec554-crash.avi > > libavformat/avidec.c | 31 +++++++++++++++++-------------- > 1 file changed, 17 insertions(+), 14 deletions(-) > > diff --git a/libavformat/avidec.c b/libavformat/avidec.c > index 5fc3e01aa9..08b864f19a 100644 > --- a/libavformat/avidec.c > +++ b/libavformat/avidec.c > @@ -113,6 +113,7 @@ static const AVMetadataConv avi_metadata_conv[] = { > { 0 }, > }; > > +static int avi_read_close(AVFormatContext *s); > static int avi_load_index(AVFormatContext *s); > static int guess_ni_flag(AVFormatContext *s); > > @@ -464,6 +465,7 @@ static int calculate_bitrate(AVFormatContext *s) > return 1; > } > > +#define RETURN_ERROR(code) do { ret = (code); goto fail; } while (0) > static int avi_read_header(AVFormatContext *s) > { > AVIContext *avi = s->priv_data; > @@ -499,7 +501,7 @@ static int avi_read_header(AVFormatContext *s) > frame_period = 0; > for (;;) { > if (avio_feof(pb)) > - goto fail; > + RETURN_ERROR(AVERROR_INVALIDDATA);
this macro is messy it replaces writing {ret = AVERROR_INVALIDDATA; goto fail;} by RETURN_ERROR(AVERROR_INVALIDDATA); this is almost the same length but the first is directly understood C code the 2nd is harder to understand for someone reading the code so i suggest to avoid the 2nd and use something else, not saying that needs to be the first thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB If you fake or manipulate statistics in a paper in physics you will never get a job again. If you fake or manipulate statistics in a paper in medicin you will get a job for life at the pharma industry.
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".