On Sun, Apr 30, 2017 at 10:07:17AM -0700, Aaron Levinson wrote:
> On 4/26/2017 12:47 PM, James Almer wrote:
> >On 4/26/2017 2:46 AM, Aaron Levinson wrote:
> >>On 4/24/2017 3:47 PM, James Almer wrote:
> >>>Free coded_frame, coded_side_data and unref hw_device_ctx to prevent
> >>>potential leaks.
> >>>
> >>>Signed-off-by: James Almer <jamr...@gmail.com>
> >>>---
> >>> libavcodec/options.c | 15 +++++++++++++++
> >>> 1 file changed, 15 insertions(+)
> >>>
> >>>diff --git a/libavcodec/options.c b/libavcodec/options.c
> >>>index b98da9378a..82e12179a6 100644
> >>>--- a/libavcodec/options.c
> >>>+++ b/libavcodec/options.c
> >>>@@ -190,14 +190,26 @@ void avcodec_free_context(AVCodecContext **pavctx)
> >>> #if FF_API_COPY_CONTEXT
> >>> static void copy_context_reset(AVCodecContext *avctx)
> >>> {
> >>>+    int i;
> >>>+
> >>>     av_opt_free(avctx);
> >>>+#if FF_API_CODED_FRAME
> >>>+FF_DISABLE_DEPRECATION_WARNINGS
> >>>+    av_frame_free(&avctx->coded_frame);
> >>>+FF_ENABLE_DEPRECATION_WARNINGS
> >>>+#endif
> >>>     av_freep(&avctx->rc_override);
> >>>     av_freep(&avctx->intra_matrix);
> >>>     av_freep(&avctx->inter_matrix);
> >>>     av_freep(&avctx->extradata);
> >>>     av_freep(&avctx->subtitle_header);
> >>>     av_buffer_unref(&avctx->hw_frames_ctx);
> >>>+    av_buffer_unref(&avctx->hw_device_ctx);
> >>>+    for (i = 0; i < avctx->nb_coded_side_data; i++)
> >>>+        av_freep(&avctx->coded_side_data[i].data);
> >>>+    av_freep(&avctx->coded_side_data);
> >>>     avctx->subtitle_header_size = 0;
> >>>+    avctx->nb_coded_side_data = 0;
> >>>     avctx->extradata_size = 0;
> >>> }
> >>>
> >>>@@ -238,11 +250,14 @@ FF_ENABLE_DEPRECATION_WARNINGS
> >>>
> >>>     /* reallocate values that should be allocated separately */
> >>>     dest->extradata       = NULL;
> >>>+    dest->coded_side_data = NULL;
> >>>     dest->intra_matrix    = NULL;
> >>>     dest->inter_matrix    = NULL;
> >>>     dest->rc_override     = NULL;
> >>>     dest->subtitle_header = NULL;
> >>>     dest->hw_frames_ctx   = NULL;
> >>>+    dest->hw_device_ctx   = NULL;
> >>>+    dest->nb_coded_side_data = 0;
> >>>
> >>> #define alloc_and_copy_or_fail(obj, size, pad) \
> >>>     if (src->obj && size > 0) { \
> >>>
> >>
> >>I'm not sure if this patch is intended to be a replacement for your last
> >>"2/2" patch, but this version is missing the the coded_side_data
> >>population code that was in the first version of your "2/2" patch.
> >>
> >>Aaron Levinson
> >
> >It is. I'm keeping the functionality of the function as is, and only
> >making sure cleanup is complete to prevent leaks.
> >This function is deprecated and shouldn't be used, so i'm not going to
> >make it copy even more stuff.
> 
> I've reviewed both patches 1 and 2, and both are good to commit.

and i couldnt find a case the patches break

[...]

thx

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Take away the freedom of one citizen and you will be jailed, take away
the freedom of all citizens and you will be congratulated by your peers
in Parliament.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to