Module: libav
Branch: master
Commit: 764ec70149728be82304c163ccc4e280f1629201

Author:    Martin Storsjö <[email protected]>
Committer: Martin Storsjö <[email protected]>
Date:      Wed Jan 21 13:05:43 2015 +0100

rtsp: Only interpret $ as interleaved packet indicator at the start of replies

Allow $ as character anywhere within normal RTSP replies - both
within the lines, and as the first character of RTSP header lines.
(The existing old comment indicated that an inline packet could
start at any line within a RTSP reply header, but that doesn't
sound valid to me, and I'm not sure if the existing code
handled that correctly either.)

CC: [email protected]
Signed-off-by: Martin Storsjö <[email protected]>

---

 libavformat/rtsp.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index cbea685..90a6b75 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1128,6 +1128,7 @@ int ff_rtsp_read_reply(AVFormatContext *s, 
RTSPMessageHeader *reply,
     unsigned char ch;
     const char *p;
     int ret, content_length, line_count = 0, request = 0;
+    int first_line = 1;
     unsigned char *content = NULL;
 
 start:
@@ -1147,8 +1148,7 @@ start:
                 return AVERROR_EOF;
             if (ch == '\n')
                 break;
-            if (ch == '$') {
-                /* XXX: only parse it if first char on line ? */
+            if (ch == '$' && first_line && q == buf) {
                 if (return_on_interleaved_data) {
                     return 1;
                 } else
@@ -1159,6 +1159,7 @@ start:
             }
         }
         *q = '\0';
+        first_line = 0;
 
         av_log(s, AV_LOG_TRACE, "line='%s'\n", buf);
 

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to