[FFmpeg-devel] [PATCH v1 5/6] avformat/rl2: use av_freep instead of av_free to avoid invalid access if alloc failed

Limin Wang lance.lmwang at gmail.com
Fri Oct 11 09:33:53 EEST 2019


On Fri, Oct 11, 2019 at 06:23:00AM +0000, Andreas Rheinhardt wrote:
> lance.lmwang at gmail.com:
> > From: Limin Wang <lance.lmwang at gmail.com>
> > 
> > Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> > ---
> >  libavformat/rl2.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/libavformat/rl2.c b/libavformat/rl2.c
> > index d847d9aaa8..3d38ffe8ba 100644
> > --- a/libavformat/rl2.c
> > +++ b/libavformat/rl2.c
> > @@ -163,9 +163,9 @@ static av_cold int rl2_read_header(AVFormatContext *s)
> >      chunk_offset = av_malloc(frame_count * sizeof(uint32_t));
> >  
> >      if(!chunk_size || !audio_size || !chunk_offset){
> > -        av_free(chunk_size);
> > -        av_free(audio_size);
> > -        av_free(chunk_offset);
> > +        av_freep(&chunk_size);
> > +        av_freep(&audio_size);
> > +        av_freep(&chunk_offset);
> >          return AVERROR(ENOMEM);
> >      }
> >  
> What invalid accesses are you talking about? You are just setting
> local variables to NULL (in addition to freeing them) and you do this
> immediately before leaving the function which ends their lifetime
> anyway. So I don't really know how this should help prevent invalid
> accesses.

If one of chunk_size or audio_size or chunk_offset is NULL, it'll cause
av_free(NULL) which it's invalid access.

> 
> - Andreas
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list