sdpsrc: fix double free if sdp is provided as string via the property
authorTim-Philipp Müller <tim@centricular.com>
Fri, 19 Feb 2021 00:03:00 +0000 (00:03 +0000)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 19 Feb 2021 00:05:41 +0000 (00:05 +0000)
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1532

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2025>

gst/sdp/gstsdpsrc.c

index 6945df5..96b483d 100644 (file)
@@ -159,8 +159,11 @@ gst_sdp_src_change_state (GstElement * element, GstStateChange transition)
       if (self->location && strcmp (self->location, "sdp://") != 0) {
         /* Do nothing */
       } else if (self->sdp) {
+        guint sdp_len = strlen (self->sdp);
+
         self->sdp_buffer =
-            gst_buffer_new_wrapped (self->sdp, strlen (self->sdp) + 1);
+            gst_buffer_new_wrapped (g_strndup (self->sdp, sdp_len),
+            sdp_len + 1);
       } else {
         ret = GST_STATE_CHANGE_FAILURE;
       }