summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin JOLY <kevin.joly@heig-vd.ch>2019-11-04 15:39:59 +0100
committerTim-Philipp Müller <tim@centricular.com>2019-11-17 14:17:33 +0000
commit36c4ae01143ffe8836bffd46237e884be95c88cd (patch)
tree61944a7945fd6586c9708b7cd83a3b06adc40ae6
parent20d73cbfeb51d9d9349a35156a15018fb7770d8e (diff)
downloadgst-libav-36c4ae01143ffe8836bffd46237e884be95c88cd.tar.gz
avdemux: Fix segmentation fault if long_name is NULL
Some plugins (like libcdio) registers empty long_name field. Calling strncmp on this field leads to a segmentation fault. Signed-off-by: Kevin Joly <joly.kevin25@gmail.com>
-rw-r--r--ext/libav/gstavdemux.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/ext/libav/gstavdemux.c b/ext/libav/gstavdemux.c
index 3b74f92..fa5fd4e 100644
--- a/ext/libav/gstavdemux.c
+++ b/ext/libav/gstavdemux.c
@@ -1994,9 +1994,14 @@ gst_ffmpegdemux_register (GstPlugin * plugin)
in_plugin->name, in_plugin->long_name);
/* no emulators */
- if (!strncmp (in_plugin->long_name, "raw ", 4) ||
- !strncmp (in_plugin->long_name, "pcm ", 4) ||
- !strcmp (in_plugin->name, "audio_device") ||
+ if (in_plugin->long_name != NULL) {
+ if (!strncmp (in_plugin->long_name, "raw ", 4) ||
+ !strncmp (in_plugin->long_name, "pcm ", 4)
+ )
+ continue;
+ }
+
+ if (!strcmp (in_plugin->name, "audio_device") ||
!strncmp (in_plugin->name, "image", 5) ||
!strcmp (in_plugin->name, "mpegvideo") ||
!strcmp (in_plugin->name, "mjpeg") ||