avdemux: Fix segmentation fault if long_name is NULL
authorKevin JOLY <kevin.joly@heig-vd.ch>
Mon, 4 Nov 2019 14:39:59 +0000 (15:39 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sun, 17 Nov 2019 14:17:33 +0000 (14:17 +0000)
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>
ext/libav/gstavdemux.c

index 3b74f92..fa5fd4e 100644 (file)
@@ -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") ||