client: Do not read beyond end of path string

If the setup was done without a control url, make sure we don't try to read the
non-existing control string and crash.
This commit is contained in:
Jonas Holmberg 2013-09-19 15:44:26 +02:00 committed by Wim Taymans
parent b41422bad7
commit e88b71aee4

View file

@ -1425,6 +1425,9 @@ handle_setup_request (GstRTSPClient * client, GstRTSPContext * ctx)
if (media == NULL)
goto media_not_found;
if (path[matched] == '\0')
goto control_not_found;
/* path is what matched. We can modify the parsed uri in place */
path[matched] = '\0';
/* control is remainder */
@ -1551,6 +1554,13 @@ media_not_found:
send_generic_response (client, GST_RTSP_STS_NOT_FOUND, ctx);
return FALSE;
}
control_not_found:
{
GST_ERROR ("client %p: no control in path '%s'", client, path);
send_generic_response (client, GST_RTSP_STS_NOT_FOUND, ctx);
g_object_unref (media);
return FALSE;
}
stream_not_found:
{
GST_ERROR ("client %p: stream '%s' not found", client, control);