[FFmpeg-cvslog] vf_select: add NULL-checks in uninit

William Yu git at videolan.org
Thu Aug 11 16:09:10 CEST 2011


ffmpeg | branch: master | William Yu <genwillyu at gmail.com> | Thu Aug 11 15:47:33 2011 +0200| [30ea0e47b5ddb13b431f997655b567d738e86d23] | committer: Stefano Sabatini

vf_select: add NULL-checks in uninit

Fix NULL pointer dereference in case of failed initialization.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala at poste.it>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=30ea0e47b5ddb13b431f997655b567d738e86d23
---

 libavfilter/vf_select.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/libavfilter/vf_select.c b/libavfilter/vf_select.c
index 3cd2347..33269b6 100644
--- a/libavfilter/vf_select.c
+++ b/libavfilter/vf_select.c
@@ -319,14 +319,18 @@ static av_cold void uninit(AVFilterContext *ctx)
     AVFilterBufferRef *picref;
     int i;
 
+    if (select->expr)
     av_expr_free(select->expr);
     select->expr = NULL;
 
+    if (select->pending_frames) {
     for (i = 0; i < av_fifo_size(select->pending_frames)/sizeof(picref); i++) {
         av_fifo_generic_read(select->pending_frames, &picref, sizeof(picref), NULL);
         avfilter_unref_buffer(picref);
     }
     av_fifo_free(select->pending_frames);
+    }
+    select->pending_frames = NULL;
 }
 
 AVFilter avfilter_vf_select = {



More information about the ffmpeg-cvslog mailing list