New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 4 users
Status: Available
Owner: ----
Cc:
Components:
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment
SDP: non-token att-field does not trigger an error in setRemoteDescription
Reported by philipp....@gmail.com, Oct 31 2014 Back to list
SDP-nitpicking... :-)

What steps will reproduce the problem?
1. paste the following snippet into the console
var staticOffer = 'v=0\r\no=- 5117596790713666576 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS 8HusrLkzZuvUWvaxtnLHc44PGr96Op6udkW1\r\nm=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:xfpI6Us7mwRXV6dp\r\na=ice-pwd:TNXkXzEdLAfn+YdOX1Yu3n1h\r\na=ice-options:google-ice\r\na=fingerprint:sha-256 62:D7:B3:39:58:E0:23:8C:25:55:AE:39:2A:49:8D:86:3D:EC:D9:41:8A:94:48:3D:D2:B2:48:F5:92:48:59:91\r\na=/setup:actpass/\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\nm=video 1 RTP/SAVPF 100 116 117 96\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:xfpI6Us7mwRXV6dp\r\na=ice-pwd:TNXkXzEdLAfn+YdOX1Yu3n1h\r\na=ice-options:google-ice\r\na=fingerprint:sha-256 62:D7:B3:39:58:E0:23:8C:25:55:AE:39:2A:49:8D:86:3D:EC:D9:41:8A:94:48:3D:D2:B2:48:F5:92:48:59:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\n'
var pc = new webkitRTCPeerConnection(null);
pc.setRemoteDescription(new RTCSessionDescription({type:'offer', sdp: staticOffer}), function () { console.log('oh no!'); }, function (err) { console.log(err); })

What is the expected result?
An error occurs since the SDP is invalid because of the following line:
a=/setup:actpass/\r\n
doesn't match the definition of 
att-field =           token
in http://tools.ietf.org/html/rfc4566#section-9

The code in 
https://code.google.com/p/webrtc/source/browse/trunk/talk/app/webrtc/webrtcsdp.cc#1898
doesn't check ABNF validity.

What do you see instead?
"oh no!"


What version of the product are you using? On what operating system?
38.0.2125.111 (Official Build 290379) m, windows

 
Project Member Comment 1 by braveyao@webrtc.org, Nov 3 2014
Cc: juberti@webrtc.org jiayl@webrtc.org braveyao@webrtc.org
Labels: Area-PeerConnection
Owner: pthatcher@webrtc.org
Seems that ignoring malformed lines in SDP is our common practice.

@peter, please help on this, together with issue3782 and issue3513. 
A variant of this, equally unimportant:
var staticOffer = 'v=0\r\no=- 5117596790713666576 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS 8HusrLkzZuvUWvaxtnLHc44PGr96Op6udkW1\r\nm=audio RTP/SAVPF 111 103 104 0 8 106 105 13 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:xfpI6Us7mwRXV6dp\r\na=ice-pwd:TNXkXzEdLAfn+YdOX1Yu3n1h\r\na=ice-options:google-ice\r\na=fingerprint:sha-256 62:D7:B3:39:58:E0:23:8C:25:55:AE:39:2A:49:8D:86:3D:EC:D9:41:8A:94:48:3D:D2:B2:48:F5:92:48:59:91\r\na=/setup:actpass/\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\nm=video 1 RTP/SAVPF 100 116 117 96\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:xfpI6Us7mwRXV6dp\r\na=ice-pwd:TNXkXzEdLAfn+YdOX1Yu3n1h\r\na=ice-options:google-ice\r\na=fingerprint:sha-256 62:D7:B3:39:58:E0:23:8C:25:55:AE:39:2A:49:8D:86:3D:EC:D9:41:8A:94:48:3D:D2:B2:48:F5:92:48:59:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\n'
var pc = new webkitRTCPeerConnection(null);
pc.setRemoteDescription(new RTCSessionDescription({type:'offer', sdp: staticOffer}), function () { console.log('oh no!'); }, function (err) { console.log(err); })

"m=audio RTP/SAVPF 111 103 104 0 8 106 105 13 126" is incorrect but the error message should indicate an error in parsing the m-line. It results in "Failed to parse SessionDescription.  Failed to parse audio codecs correctly."

Couple of checks missing in https://code.google.com/p/webrtc/source/browse/trunk/talk/app/webrtc/webrtcsdp.cc#2181 (ParseMediaDescription) apparently.
Project Member Comment 3 by pthatcher@webrtc.org, Dec 11 2014
Labels: EngTriaged IceBox
Project Member Comment 4 by pthatcher@webrtc.org, Dec 11 2014
Status: Available
Project Member Comment 5 by pthatcher@webrtc.org, Nov 8 2016
Labels: Pri-3
Project Member Comment 6 by anatolid@webrtc.org, Dec 14 2016
Cc: pthatcher@webrtc.org
Owner: ----
Sign in to add a comment