diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 12faf980f811deaffa999c8194f2fa2565b3377e..19175a07fb5246b3fd2e27ea962a0baca2a6140d 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1670,7 +1670,9 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st,
             if (tcp_fd != -1 && FD_ISSET(tcp_fd, &rfds)) {
                 RTSPMessageHeader reply;
 
-                ff_rtsp_read_reply(s, &reply, NULL, 0);
+                ret = ff_rtsp_read_reply(s, &reply, NULL, 0);
+                if (ret < 0)
+                    return ret;
                 /* XXX: parse message */
                 if (rt->state != RTSP_STATE_STREAMING)
                     return 0;