rtsp-stream: Check return value of sscanf
authorEdward Hervey <bilboed@bilboed.com>
Thu, 19 Dec 2013 13:26:34 +0000 (14:26 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Thu, 19 Dec 2013 13:26:34 +0000 (14:26 +0100)
streamid is only valid if sscanf matched something.

gst/rtsp-server/rtsp-stream.c

index 64281500170fc1760ea116535f498f15ab9cf1b9..bcc8ccfe95896ccebe6df764d042007d54901c6d 100644 (file)
@@ -421,8 +421,11 @@ gst_rtsp_stream_has_control (GstRTSPStream * stream, const gchar * control)
     res = (g_strcmp0 (priv->control, control) == 0);
   else {
     guint streamid;
-    sscanf (control, "stream=%u", &streamid);
-    res = (streamid == priv->idx);
+
+    if (sscanf (control, "stream=%u", &streamid) > 0)
+      res = (streamid == priv->idx);
+    else
+      res = FALSE;
   }
   g_mutex_unlock (&priv->lock);
 
@@ -1032,10 +1035,6 @@ cleanup:
       gst_element_set_state (udpsink0, GST_STATE_NULL);
       gst_object_unref (udpsink0);
     }
-    if (udpsink1) {
-      gst_element_set_state (udpsink1, GST_STATE_NULL);
-      gst_object_unref (udpsink1);
-    }
     if (inetaddr)
       g_object_unref (inetaddr);
     g_list_free_full (rejected_addresses,