[FFmpeg-devel] [PATCH] lavc/options: don't copy priv context when it is not AVOption object

Michael Niedermayer michaelni at gmx.at
Wed Dec 3 01:28:01 CET 2014


On Wed, Dec 03, 2014 at 01:24:55AM +0100, Lukasz Marek wrote:
> On 03.12.2014 01:15, Michael Niedermayer wrote:
> >On Wed, Dec 03, 2014 at 12:06:47AM +0100, Lukasz Marek wrote:
> >>This prevents potential crash when opt API is used without a class.
> >>
> >>Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >>---
> >>  libavcodec/options.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >>diff --git a/libavcodec/options.c b/libavcodec/options.c
> >>index 7f9fb07..42ef754 100644
> >>--- a/libavcodec/options.c
> >>+++ b/libavcodec/options.c
> >>@@ -196,7 +196,7 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
> >>
> >>      dest->priv_data       = orig_priv_data;
> >>
> >>-    if (orig_priv_data)
> >>+    if (orig_priv_data && src->codec && src->codec->priv_class)
> >>          av_opt_copy(orig_priv_data, src->priv_data);
> >>
> >
> >"&& src->codec->priv_class" <--- LGTM
> >the src->codec check is probably ok too but is it NULL ever ?
> 
> after avcodec_alloc_context3(NULL)?
> IIRC there was a patch recently that set codec in
> avcodec_alloc_context3 (via avcodec_get_context_defaults3) when
> provided. Maybe after that it is not so common case. But still when
> allocated with NULL then you have NULL there. src context doesn't
> have to be open neither.

ok

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

Its not that you shouldnt use gotos but rather that you should write
readable code and code with gotos often but not always is less readable
-------------- 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/20141203/a51cfc54/attachment.asc>


More information about the ffmpeg-devel mailing list