From 53b2809f2c1b942adf4d876ac446ef97f812ac0c Mon Sep 17 00:00:00 2001 From: Lukasz Marek Date: Tue, 2 Dec 2014 23:24:15 +0100 Subject: [PATCH] lavc/options: don't copy priv context when it is not AVOption object This prevents potential crash when opt API is used without a class. Signed-off-by: Lukasz Marek --- libavcodec/options.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/options.c b/libavcodec/options.c index 7f9fb07fd6..49c8b4021f 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -195,11 +195,12 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src) av_opt_copy(dest, src); dest->priv_data = orig_priv_data; + dest->codec = orig_codec; - if (orig_priv_data) + if (orig_priv_data && src->codec && src->codec->priv_class && + dest->codec && dest->codec->priv_class) av_opt_copy(orig_priv_data, src->priv_data); - dest->codec = orig_codec; /* set values specific to opened codecs back to their default state */ dest->slice_offset = NULL;