ext/vorbis/vorbisdec.c: Fix #327216 (null dereference in vorbisdec)
authorThomas Vander Stichele <thomas@apestaart.org>
Mon, 16 Jan 2006 15:31:14 +0000 (15:31 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Mon, 16 Jan 2006 15:31:14 +0000 (15:31 +0000)
Original commit message from CVS:

* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
Fix #327216 (null dereference in vorbisdec)

ChangeLog
ext/vorbis/vorbisdec.c

index 3c7b176f4e830d190b74d1ca05fcbd735c8f4691..fd0c66c47742b3abf4b6461ba89795f2a320361b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-16  Thomas Vander Stichele  <thomas at apestaart dot org>
+
+       * ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
+         Fix #327216 (null dereference in vorbisdec)
+
 2006-01-16  Tim-Philipp Müller  <tim at centricular dot net>
 
        * ext/theora/theoradec.c: (theora_handle_comment_packet):
index 6b275aba77c5b9a18c21143e94315734b14516a3..7d65c47be359e9e7ead9f27241498911e22f1655 100644 (file)
@@ -274,7 +274,7 @@ vorbis_dec_src_query (GstPad * pad, GstQuery * query)
 {
   gint64 granulepos;
   GstVorbisDec *dec;
-  gboolean res;
+  gboolean res = FALSE;
 
   dec = GST_VORBIS_DEC (GST_PAD_PARENT (pad));
 
@@ -307,6 +307,11 @@ vorbis_dec_src_query (GstPad * pad, GstQuery * query)
     case GST_QUERY_DURATION:
     {
       /* query peer for total length */
+      if (!gst_pad_is_linked (dec->sinkpad)) {
+        GST_WARNING_OBJECT (dec, "sink pad %" GST_PTR_FORMAT " is not linked",
+            dec->sinkpad);
+        goto error;
+      }
       if (!(res = gst_pad_query (GST_PAD_PEER (dec->sinkpad), query)))
         goto error;
       break;