[FFmpeg-cvslog] r14221 - trunk/libavcodec/utils.c

Stefano Sabatini stefano.sabatini-lala
Wed Jul 16 09:33:33 CEST 2008


On date Tuesday 2008-07-15 22:07:05 -0700, Baptiste Coudurier wrote:
> Baptiste Coudurier wrote:
> > Hi,
> > 
> > stefano wrote:
> >> Author: stefano
> >> Date: Sun Jul 13 23:44:00 2008
> >> New Revision: 14221
> >>
> >> Log:
> >> strdup() the default value for rc_eq in AVCodec when setting it in
> >> avcodec_get_context_defaults(). The value has to be alloced dinamically
> >> rather than statically since it may be freed for example by
> >> av_set_string2(). Fix a segmentation fault.
> >>
> >>
> >> Modified:
> >>    trunk/libavcodec/utils.c
> >>
> >> Modified: trunk/libavcodec/utils.c
> >> ==============================================================================
> >> --- trunk/libavcodec/utils.c	(original)
> >> +++ trunk/libavcodec/utils.c	Sun Jul 13 23:44:00 2008
> >> @@ -741,7 +741,7 @@ void avcodec_get_context_defaults2(AVCod
> >>          flags= AV_OPT_FLAG_SUBTITLE_PARAM;
> >>      av_opt_set_defaults2(s, flags, flags);
> >>  
> >> -    s->rc_eq= "tex^qComp";
> >> +    s->rc_eq= av_strdup("tex^qComp");
> >>      s->time_base= (AVRational){0,1};
> >>      s->get_buffer= avcodec_default_get_buffer;
> >>      s->release_buffer= avcodec_default_release_buffer;
> > 
> > I think avcodec_close must now free it.

Like in the attached patch (BTW I'm not sure if I have to check for
avctx->rc_eq != NULL)?

> And according to valgrind, if you now use a new rc_eq, there is a memleak.

I think the parameter alloc of av_set_string2() has been designed for
fixing that problem.

Regards.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-rc-eq-memleak-00.patch
Type: text/x-diff
Size: 409 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20080716/64c5adca/attachment.patch>



More information about the ffmpeg-cvslog mailing list