From c7e921a54ffe7feb9f695c82f0a0764ab8d0f62b Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Mon, 29 Jul 2013 14:53:01 +0300 Subject: avopt: Check whether the object actually has got an AVClass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AVIOContext has got an av_class member that only gets set if opening the context using avio_open2, but not if allocating a custom IO context. A caller that wants to read AVOptions from an AVIOContext (recursively using AV_OPT_SEARCH_CHILDREN) may not know if the AVIOContext actually has got a class set or not. Signed-off-by: Martin Storsjö --- libavutil/opt.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libavutil') diff --git a/libavutil/opt.c b/libavutil/opt.c index f2b947337e..cba5b29ac6 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -650,6 +650,9 @@ const AVOption *av_opt_find2(void *obj, const char *name, const char *unit, const AVClass *c = *(AVClass**)obj; const AVOption *o = NULL; + if (!c) + return NULL; + if (search_flags & AV_OPT_SEARCH_CHILDREN) { if (search_flags & AV_OPT_SEARCH_FAKE_OBJ) { const AVClass *child = NULL; -- cgit v1.2.3