summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/rtsp.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 2703400720..48ed6b5d46 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1111,11 +1111,12 @@ static int make_setup_request(AVFormatContext *s, const char *host, int port,
rt->transport = reply->transports[0].transport;
}
- /* close RTP connection if not chosen */
- if (reply->transports[0].lower_transport != RTSP_LOWER_TRANSPORT_UDP &&
- (lower_transport == RTSP_LOWER_TRANSPORT_UDP)) {
- url_close(rtsp_st->rtp_handle);
- rtsp_st->rtp_handle = NULL;
+ /* Fail if the server responded with another lower transport mode
+ * than what we requested. */
+ if (reply->transports[0].lower_transport != lower_transport) {
+ av_log(s, AV_LOG_ERROR, "Nonmatching transport in server reply\n");
+ err = AVERROR_INVALIDDATA;
+ goto fail;
}
switch(reply->transports[0].lower_transport) {