New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 590625 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

SDP s= line (session name) must admit a single space as value

Reported by ibc@aliax.net, Feb 29 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36

Steps to reproduce the problem:
1. Provide a SDP offer/answer to a RTCPeerConnection with this s= line:

s=SPACE

(where SPACE must be a real single space).

What is the expected behavior?
The SDP should be accepted.

What went wrong?
setLocalDescription() or serRemoteDescription() fails with this error:

"Failed to parse SessionDescription. s=  Expect line: s="

Did this work before? No 

Chrome version: 48.0.2564.116  Channel: n/a
OS Version: OS X 10.11.3
Flash Version: Shockwave Flash 20.0 r0

https://tools.ietf.org/html/rfc4566#section-5.3

5.3.  Session Name ("s=")

      s=<session name>

   The "s=" field is the textual session name.  There MUST be one and
   only one "s=" field per session description.  The "s=" field MUST NOT
   be empty and SHOULD contain ISO 10646 characters (but see also the
   "a=charset" attribute).  If a session has no meaningful name, the
   value "s= " SHOULD be used (i.e., a single space as the session
   name).
 
Labels: TE-NeedsFurtherTriage

Comment 2 by rsesek@chromium.org, Feb 29 2016

Components: Blink>WebRTC
Cc: tnakamura@chromium.org hta@chromium.org deadbeef@chromium.org
[triage] This looks like a spec conformance issue. 

ibc@ I assume the same issue is present in M50 as well?

Comment 4 by ibc@aliax.net, Feb 29 2016

I've just tested un M48 but I assume it also happens in M50 given that all the WebRTC implementations set "s=-", so probably this issue has never caused any problem.

Comment 5 by ibc@aliax.net, Feb 29 2016

I confirm that it also happens in 51.0.2663.0 canary.
Labels: -Te-NeedsFurtherTriage
Owner: hta@chromium.org
Status: Assigned (was: Unconfirmed)
spec conformance issue -> sending to hta@
This sounds like expected behavior. RFC4566 section 5:

   An SDP session description consists of a number of lines of text of
   the form:

      <type>=<value>

   where <type> MUST be exactly one case-significant character and
   <value> is structured text whose format depends on <type>.  In
   general, <value> is either a number of fields delimited by a single
   space character or a free format string, and is case-significant
   unless a specific field defines otherwise.  Whitespace MUST NOT be
   used on either side of the "=" sign.

Comment 8 by ibc@aliax.net, Mar 1 2016

5.3.  Session Name ("s=")

      s=<session name>

   The "s=" field is the textual session name.  There MUST be one and
   only one "s=" field per session description.  The "s=" field MUST NOT
   be empty and SHOULD contain ISO 10646 characters (but see also the
   "a=charset" attribute).  If a session has no meaningful name, the
   value "s= " SHOULD be used (i.e., a single space as the session
   name).


Not sure where the confusion is. IMHO it is very clear:

   If a session has no meaningful name, the
   value "s= " SHOULD be used (i.e., a single space as the session
   name).
My apologies, I didn't notice that. So on the one hand we have "whitespace MUST NOT be used", and the other hand "a single space SHOULD be used". This seems like an inconsistency with the spec. Harald, are you aware of this? Should we file an "errata" report?

Comment 10 by ibc@aliax.net, Mar 1 2016

Right, it makes no sense.

Comment 11 by hta@chromium.org, Mar 13 2016

This indeed makes no sense, and is the result of a stupid decision made long ago (20 years?), and implemented in many existing systems.

The realities of the marketplace is that we have no choice but to go along with the stupid decision if we want to interoperate with the installed base.

Accept the space in code.

Filing an errata is a good thing to do on principle, but it won't remove the need to accept the space.

Comment 12 by hta@chromium.org, Apr 5 2017

Owner: deadbeef@chromium.org
Seems natural to assign it to deadbeef@ to write a test case and get the parser fixed.

Components: -Blink>WebRTC Blink>WebRTC>PeerConnection
Labels: -Pri-2 Pri-3
Owner: ----
Status: Available (was: Assigned)
Project Member

Comment 14 by sheriffbot@chromium.org, Apr 16 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 16 2018

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/93a7b2470fe7ef74abde16ed84b89bb88418d9df

commit 93a7b2470fe7ef74abde16ed84b89bb88418d9df
Author: Taylor Brandstetter <deadbeef@webrtc.org>
Date: Mon Apr 16 19:27:08 2018

Accept session names of "s= " in SDP.

RFC4566 says to use this if a session has no meaningful name. But we
were rejecting it due to another rule that says "whitespace MUST NOT be
used on either side of the = sign".

Bug:  chromium:590625 
Change-Id: I5d632f2cb371060adee794febe19bdfe76cb20ed
Reviewed-on: https://webrtc-review.googlesource.com/70262
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22887}
[modify] https://crrev.com/93a7b2470fe7ef74abde16ed84b89bb88418d9df/pc/webrtcsdp.cc
[modify] https://crrev.com/93a7b2470fe7ef74abde16ed84b89bb88418d9df/pc/webrtcsdp_unittest.cc

Comment 16 by ibc@aliax.net, Apr 16 2018

:)
Owner: deadbeef@chromium.org
Status: Fixed (was: Untriaged)
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca6e12ae914bcd693376b231242ef051cffab1e2

commit ca6e12ae914bcd693376b231242ef051cffab1e2
Author: webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue Apr 17 14:50:03 2018

Roll src/third_party/webrtc/ 365381fdf..6dfc8d6ef (27 commits)

https://webrtc.googlesource.com/src.git/+log/365381fdf1cd..6dfc8d6ef3b2

$ git log 365381fdf..6dfc8d6ef --date=short --no-merges --format='%ad %ae %s'

Created with:
  roll-dep src/third_party/webrtc
BUG=chromium:827917,chromium:None,chromium:590625,chromium:None,chromium:None,chromium:none,chromium:none,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None,chromium:none


The AutoRoll server is located here: https://webrtc-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng
TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: Icc418e420f561e22812bf43676d3ed5425a42659
Reviewed-on: https://chromium-review.googlesource.com/1014943
Commit-Queue: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Reviewed-by: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#551333}
[modify] https://crrev.com/ca6e12ae914bcd693376b231242ef051cffab1e2/DEPS

Labels: M-68

Sign in to add a comment