From a0f6c93f52f83291a1e073f31ae597739a05a3cd Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 19 Oct 2012 20:39:27 +0200 Subject: [PATCH] lavc: remove stats_out from the options table. Since it is declared as a string AVOption, the generic freeing code attempts to free it on codec close. Some codecs might have already freed it elsewhere (or didn't even allocate it with av_malloc() in the first place), so this might lead to an invalid free. There is no point in having this field accessible as an AVOption, so remove it from the options table. Fixes Bug 380. CC: libav-stable@libav.org (cherry picked from commit b691135d0c6a2b1cca91adadaf457c2989c6a55d) Conflicts: libavcodec/options_table.h --- libavcodec/options.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/options.c b/libavcodec/options.c index bd0083c826..d6e36cb0fb 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -219,8 +219,6 @@ static const AVOption options[]={ {"parse_only", NULL, OFFSET(parse_only), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX}, #endif {"mpeg_quant", "use MPEG quantizers instead of H.263", OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E}, -{"stats_out", NULL, OFFSET(stats_out), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX}, -{"stats_in", NULL, OFFSET(stats_in), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX}, {"qsquish", "how to keep quantizer between qmin and qmax (0 = clip, 1 = use differentiable function)", OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, 0, 99, V|E}, {"rc_qmod_amp", "experimental quantizer modulation", OFFSET(rc_qmod_amp), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E}, {"rc_qmod_freq", "experimental quantizer modulation", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},