udpsrc: GstSocketTimestampMessage only for SCM_TIMESTAMPNS
authorDavid Svensson Fors <davidsf@axis.com>
Mon, 23 Jan 2023 11:01:00 +0000 (12:01 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 26 Jan 2023 01:40:43 +0000 (01:40 +0000)
Deserialize socket control messages as GstSocketTimestampMessage only
if (level, type) is (SOL_SOCKET, SCM_TIMESTAMPNS).

Without this patch, messages with types SCM_RIGHTS or SCM_CREDENTIALS
could be deserialized as GstSocketTimestampMessage instead of
GUnixFDMessage or GUnixCredentialsMessage from gio.

Fixes #1736

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3777>

subprojects/gst-plugins-good/gst/udp/gstudpsrc.c

index f957007468974c1dc8a991356e2475fa721a546b..172137ad8cba0f228edf63393ad05fde6bb75a42 100644 (file)
@@ -476,7 +476,8 @@ gst_socket_timestamp_message_deserialize (gint level,
 {
   GstSocketTimestampMessage *message;
 
-  if (level != SOL_SOCKET)
+  if (level != SOL_SOCKET
+      || type != gst_socket_timestamp_message_get_msg_type (NULL))
     return NULL;
 
   if (size < sizeof (struct timespec))