[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