From 54d0763b92f3d8239aa2258f2193eebdc74a91ef Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Mon, 15 Aug 2011 02:58:51 +0300 Subject: av_log: don't crash if called with NULL AVClass At least libavformat mpegts demuxer may give bad parameters with NULL AVClass to the av_log callback. Check for this and print a warning instead of crashing. --- av_log.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/av_log.c b/av_log.c index 376144800a..d4684218ed 100644 --- a/av_log.c +++ b/av_log.c @@ -54,6 +54,12 @@ static int extract_msg_type_from_ctx(void *ptr) return MSGT_FIXME; AVClass *avc = *(AVClass **)ptr; + if (!avc) { + mp_msg(MSGT_FIXME, MSGL_WARN, + "av_log callback called with bad parameters (NULL AVClass).\n" + "This is a bug in one of Libav/FFmpeg libraries used.\n"); + return MSGT_FIXME; + } #ifdef CONFIG_FFMPEG if (!strcmp(avc->class_name, "AVCodecContext")) { @@ -71,9 +77,7 @@ static int extract_msg_type_from_ctx(void *ptr) } return MSGT_FIXME; } -#endif -#ifdef CONFIG_FFMPEG if (!strcmp(avc->class_name, "AVFormatContext")) { AVFormatContext *s = ptr; if (s->iformat) -- cgit v1.2.3