[FFmpeg-devel] [PATCH 2/2] lavc/options: fix leaks in avcodec_copy_context

Michael Niedermayer michaelni at gmx.at
Thu Dec 4 23:51:00 CET 2014


On Thu, Dec 04, 2014 at 12:54:30AM +0100, Lukasz Marek wrote:
> On 27.11.2014 04:17, Michael Niedermayer wrote:
> >On Thu, Nov 27, 2014 at 12:43:57AM +0100, Lukasz Marek wrote:
> >>On 24.11.2014 05:16, Lukasz Marek wrote:
> >>>Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >>>---
> >>>  libavcodec/options.c | 23 +++++++++++------------
> >>>  1 file changed, 11 insertions(+), 12 deletions(-)
> >>>
> >>>diff --git a/libavcodec/options.c b/libavcodec/options.c
> >>>index 7f9fb07..8ba997c 100644
> >>>--- a/libavcodec/options.c
> >>>+++ b/libavcodec/options.c
> >>>@@ -190,6 +190,11 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
> >>>      }
> >>>
> >>>      av_opt_free(dest);
> >>>+    av_freep(&dest->rc_override);
> >>>+    av_freep(&dest->intra_matrix);
> >>>+    av_freep(&dest->inter_matrix);
> >>>+    av_freep(&dest->extradata);
> >>>+    av_freep(&dest->subtitle_header);
> >>>
> >>>      memcpy(dest, src, sizeof(*dest));
> >>>      av_opt_copy(dest, src);
> >>>@@ -205,13 +210,7 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
> >>>      dest->slice_offset    = NULL;
> >>>      dest->hwaccel         = NULL;
> >>>      dest->internal        = NULL;
> >>>-
> >>>-    /* reallocate values that should be allocated separately */
> >>>-    dest->extradata       = NULL;
> >>>-    dest->intra_matrix    = NULL;
> >>>-    dest->inter_matrix    = NULL;
> >>>-    dest->rc_override     = NULL;
> >>>-    dest->subtitle_header = NULL;
> >>
> >>
> >>This should stay. Updated version attched
> >>
> >
> >>  options.c |   16 +++++++++++-----
> >>  1 file changed, 11 insertions(+), 5 deletions(-)
> >>971d1769e50d2e853d7359003f8c924092a96e6b  0001-lavc-options-fix-leaks-in-avcodec_copy_context.patch
> >> From 722d7e837093212d6e6e6b17814ed408300d25a6 Mon Sep 17 00:00:00 2001
> >>From: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >>Date: Thu, 27 Nov 2014 00:41:16 +0100
> >>Subject: [PATCH] lavc/options: fix leaks in avcodec_copy_context
> >>
> >>Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >>---
> >>  libavcodec/options.c | 16 +++++++++++-----
> >>  1 file changed, 11 insertions(+), 5 deletions(-)
> >
> >breaks "make fate-lavf-yuv4mpeg"
> >
> >--- ./tests/ref/lavf/yuv4mpeg   2014-11-26 20:04:48.466295490 +0100
> >+++ tests/data/fate/lavf-yuv4mpeg       2014-11-27 04:16:07.234916526 +0100
> >@@ -1,2 +0,0 @@
> >-ec8178cb152f9cdbfd9cb724d977db2e *./tests/data/lavf/lavf.y4m
> >-3801808 ./tests/data/lavf/lavf.y4m
> >Test lavf-yuv4mpeg failed. Look at tests/data/fate/lavf-yuv4mpeg.err for details.
> >make: *** [fate-lavf-yuv4mpeg] Error 139
> 
> I will rerun whole fate, but I assume I can push it if nothing fails?
> The one mentioned above is OK.

ok

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Asymptotically faster algorithms should always be preferred if you have
asymptotical amounts of data
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141204/8e2b820f/attachment.asc>


More information about the ffmpeg-devel mailing list