From: Albert Sjölund Date: Thu, 16 Mar 2023 12:25:39 +0000 (+0100) Subject: webrtc: patch leak caused by early return X-Git-Tag: 1.22.7~413 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6341817018206e8aa27739f32a80aafec50d037b;p=platform%2Fupstream%2Fgstreamer.git webrtc: patch leak caused by early return In webrtc_data_channel_send functions, both data and string, an early return on a non-open datachannel caused it to leak the buffer used for pushing to appsrc, meaning any buffer sent after leaving the open state was leaked in full. Part-of: --- diff --git a/subprojects/gst-plugins-bad/ext/webrtc/webrtcdatachannel.c b/subprojects/gst-plugins-bad/ext/webrtc/webrtcdatachannel.c index 0260c61..1ca7868 100644 --- a/subprojects/gst-plugins-bad/ext/webrtc/webrtcdatachannel.c +++ b/subprojects/gst-plugins-bad/ext/webrtc/webrtcdatachannel.c @@ -871,6 +871,7 @@ webrtc_data_channel_send_data (GstWebRTCDataChannel * base_channel, GST_WEBRTC_DATA_CHANNEL_UNLOCK (channel); g_set_error (error, GST_WEBRTC_ERROR, GST_WEBRTC_ERROR_INVALID_STATE, "channel is not open"); + gst_buffer_unref (buffer); return FALSE; } GST_WEBRTC_DATA_CHANNEL_UNLOCK (channel); @@ -945,6 +946,7 @@ webrtc_data_channel_send_string (GstWebRTCDataChannel * base_channel, GST_WEBRTC_DATA_CHANNEL_UNLOCK (channel); g_set_error (error, GST_WEBRTC_ERROR, GST_WEBRTC_ERROR_INVALID_STATE, "channel is not open"); + gst_buffer_unref (buffer); return FALSE; } GST_WEBRTC_DATA_CHANNEL_UNLOCK (channel);