event/message: Don't allow setting invalid group ids
authorSebastian Dröge <sebastian@centricular.com>
Fri, 24 Jan 2020 15:52:49 +0000 (17:52 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 24 Jan 2020 15:53:30 +0000 (17:53 +0200)
They are optional on STREAM_START messages/events but if available
should have at least a valid value.

For STREAM_GROUP_DONE events don't allow creating it with an invalid
group id as this does not make any sense.

gst/gstevent.c
gst/gstmessage.c

index bc03738..910c7a4 100644 (file)
@@ -690,6 +690,8 @@ gst_event_new_stream_group_done (guint group_id)
 {
   GstStructure *s;
 
+  g_return_val_if_fail (group_id != GST_GROUP_ID_INVALID, NULL);
+
   s = gst_structure_new_id (GST_QUARK (EVENT_STREAM_GROUP_DONE),
       GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id, NULL);
 
@@ -1810,6 +1812,7 @@ gst_event_set_group_id (GstEvent * event, guint group_id)
   g_return_if_fail (event != NULL);
   g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
   g_return_if_fail (gst_event_is_writable (event));
+  g_return_if_fail (group_id != GST_GROUP_ID_INVALID);
 
   gst_structure_id_set (GST_EVENT_STRUCTURE (event),
       GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id, NULL);
index 4ce08a4..d7fdc08 100644 (file)
@@ -2436,6 +2436,7 @@ gst_message_set_group_id (GstMessage * message, guint group_id)
   g_return_if_fail (GST_IS_MESSAGE (message));
   g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STREAM_START);
   g_return_if_fail (gst_message_is_writable (message));
+  g_return_if_fail (group_id != GST_GROUP_ID_INVALID);
 
   structure = GST_MESSAGE_STRUCTURE (message);
   gst_structure_id_set (structure, GST_QUARK (GROUP_ID), G_TYPE_UINT, group_id,