From: Sebastian Dröge Date: Fri, 16 Jan 2015 19:04:01 +0000 (+0100) Subject: rtsp-client: Drop trailing \0 of RTSP DATA messages X-Git-Tag: 1.19.3~495^2~704 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=586fe4ea4bbc97283cc1db263e0e9d21c61228e0;hp=0d2de69db99670451bc7a39d921dc5636fd94cec;p=platform%2Fupstream%2Fgstreamer.git rtsp-client: Drop trailing \0 of RTSP DATA messages We add a trailing \0 in GstRTSPConnection to make parsing of string message bodies easier (e.g. the SDP from DESCRIBE) but for actual data this means we have to drop it or otherwise create invalid data. --- diff --git a/gst/rtsp-server/rtsp-client.c b/gst/rtsp-server/rtsp-client.c index 4099b78..faff8b1 100644 --- a/gst/rtsp-server/rtsp-client.c +++ b/gst/rtsp-server/rtsp-client.c @@ -2601,9 +2601,14 @@ handle_data (GstRTSPClient * client, GstRTSPMessage * message) if (res != GST_RTSP_OK) return; + gst_rtsp_message_get_body (message, &data, &size); + if (size < 2) + goto invalid_length; + gst_rtsp_message_steal_body (message, &data, &size); - buffer = gst_buffer_new_wrapped (data, size); + /* Strip trailing \0 */ + buffer = gst_buffer_new_wrapped (data, size - 1); trans = g_hash_table_lookup (priv->transports, GINT_TO_POINTER ((gint) channel)); @@ -2613,6 +2618,11 @@ handle_data (GstRTSPClient * client, GstRTSPMessage * message) } else { gst_buffer_unref (buffer); } +invalid_length: + { + GST_DEBUG ("client %p: Short message received, ignoring", client); + return; + } } /**