summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
0d2de69)
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.
if (res != GST_RTSP_OK)
return;
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);
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));
trans =
g_hash_table_lookup (priv->transports, GINT_TO_POINTER ((gint) channel));
} else {
gst_buffer_unref (buffer);
}
} else {
gst_buffer_unref (buffer);
}
+invalid_length:
+ {
+ GST_DEBUG ("client %p: Short message received, ignoring", client);
+ return;
+ }