summaryrefslogtreecommitdiff
path: root/gst/sdp
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2021-02-19 00:03:00 +0000
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-02-19 00:05:41 +0000
commit438449db697c7743a10dcbe20aeee5d39b0463bc (patch)
tree42730d5afa545f4a0c899c01f8fee4be6af03219 /gst/sdp
parent8d1a79e5203da089fda22a7569e8a8670fcb3b44 (diff)
downloadgstreamer-plugins-bad-438449db697c7743a10dcbe20aeee5d39b0463bc.tar.gz
sdpsrc: fix double free if sdp is provided as string via the property
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1532 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2025>
Diffstat (limited to 'gst/sdp')
-rw-r--r--gst/sdp/gstsdpsrc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/sdp/gstsdpsrc.c b/gst/sdp/gstsdpsrc.c
index 6945df559..96b483d23 100644
--- a/gst/sdp/gstsdpsrc.c
+++ b/gst/sdp/gstsdpsrc.c
@@ -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;
}