diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 4fec5b4094ca54412784fdb5a4edbcc30d27b39c..831ef9b26f1b426d092defea777b5603c2f226ab 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1196,7 +1196,7 @@ static int rtsp_read_packet(AVFormatContext *s,
         break;
     }
     if (len < 0)
-        return AVERROR(EIO);
+        return len;
     ret = rtp_parse_packet(rtsp_st->rtp_ctx, pkt, buf, len);
     if (ret < 0)
         goto redo;