[Bug 796988] New: rtsp-client: We allow reused channel numbers for interleaved

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Aug 17 14:02:20 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=796988

            Bug ID: 796988
           Summary: rtsp-client: We allow reused channel numbers for
                    interleaved
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-rtsp-server
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: davidsf at axis.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

If a (strange) client would reuse interleaved channel numbers in
multiple SETUP requests, gst-rtsp-server accepts them and returns them
in the 200 OK response.

This leads to problems in rtsp-client.c, where the channel numbers are
used for looking up stream transports (and indirectly streams) in the
priv->transports hash table. Transports disappear from the table if
channel numbers are reused. After a second stream has been
established, the first stream gets stuck because it gets no acks as
per the code added in the commit "Limit queued TCP data messages to
one per stream". Also before that commit, there was a problem with
received RTCP packets getting lost for the first stream.

It can be seen that reused channel numbers are accepted by running

./examples/test-video

and doing

telnet 127.0.0.1 8554

Enter the first SETUP, followed by a blank line:

SETUP rtsp://127.0.0.1:8554/test/stream=0 RTSP/1.0
CSeq: 1
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

Note the session number in the response and use it in a second SETUP
(blank line after):

SETUP rtsp://127.0.0.1:8554/test/stream=1 RTSP/1.0
CSeq: 2
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Session: 9MZEvi9FJI3jycJL

It can be seen that interleaved=0-1 is returned in the second
response.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list