webrtcdatachannels: Don't leak strings

They would leak in error cases

CID: 1455480
This commit is contained in:
Edward Hervey 2019-11-21 16:38:35 +01:00 committed by Edward Hervey
parent c026522084
commit 706ec236ac

View file

@ -432,6 +432,8 @@ _parse_control_packet (GstWebRTCDataChannel * channel, guint8 * data,
{ {
GstByteReader r; GstByteReader r;
guint8 message_type; guint8 message_type;
gchar *label = NULL;
gchar *proto = NULL;
if (!data) if (!data)
g_return_val_if_reached (GST_FLOW_ERROR); g_return_val_if_reached (GST_FLOW_ERROR);
@ -452,7 +454,6 @@ _parse_control_packet (GstWebRTCDataChannel * channel, guint8 * data,
guint32 reliability_param; guint32 reliability_param;
guint16 priority, label_len, proto_len; guint16 priority, label_len, proto_len;
const guint8 *src; const guint8 *src;
gchar *label, *proto;
GstBuffer *buffer; GstBuffer *buffer;
GstFlowReturn ret; GstFlowReturn ret;
@ -536,6 +537,8 @@ _parse_control_packet (GstWebRTCDataChannel * channel, guint8 * data,
parse_error: parse_error:
{ {
g_free (label);
g_free (proto);
g_set_error (error, GST_WEBRTC_BIN_ERROR, g_set_error (error, GST_WEBRTC_BIN_ERROR,
GST_WEBRTC_BIN_ERROR_DATA_CHANNEL_FAILURE, "Failed to parse packet"); GST_WEBRTC_BIN_ERROR_DATA_CHANNEL_FAILURE, "Failed to parse packet");
g_return_val_if_reached (GST_FLOW_ERROR); g_return_val_if_reached (GST_FLOW_ERROR);