Commit 4f064193 by claincly Committed by Oliver Woodman

Fix RTSP session header parsing regex error.

Issue: #9416

The dash "-" in the brackets must be escaped, or it acts like a range operator.

#minor-release

PiperOrigin-RevId: 395909845
parent 9f3c2fb5
...@@ -92,6 +92,8 @@ ...@@ -92,6 +92,8 @@
([#9379](https://github.com/google/ExoPlayer/issues/9379)). ([#9379](https://github.com/google/ExoPlayer/issues/9379)).
* Handle partial URIs in RTP-Info headers * Handle partial URIs in RTP-Info headers
([#9346](https://github.com/google/ExoPlayer/issues/9346)). ([#9346](https://github.com/google/ExoPlayer/issues/9346)).
* Fix RTSP Session header handling
([#9416](https://github.com/google/ExoPlayer/issues/9416)).
* Extractors: * Extractors:
* ID3: Fix issue decoding ID3 tags containing UTF-16 encoded strings * ID3: Fix issue decoding ID3 tags containing UTF-16 encoded strings
([#9087](https://github.com/google/ExoPlayer/issues/9087)). ([#9087](https://github.com/google/ExoPlayer/issues/9087)).
......
...@@ -94,7 +94,7 @@ import java.util.regex.Pattern; ...@@ -94,7 +94,7 @@ import java.util.regex.Pattern;
// Session header pattern, see RFC2326 Sections 3.4 and 12.37. // Session header pattern, see RFC2326 Sections 3.4 and 12.37.
private static final Pattern SESSION_HEADER_PATTERN = private static final Pattern SESSION_HEADER_PATTERN =
Pattern.compile("([\\w$-_.+]+)(?:;\\s?timeout=(\\d+))?"); Pattern.compile("([\\w$\\-_.+]+)(?:;\\s?timeout=(\\d+))?");
// WWW-Authenticate header pattern, see RFC2068 Sections 14.46 and RFC2069. // WWW-Authenticate header pattern, see RFC2068 Sections 14.46 and RFC2069.
private static final Pattern WWW_AUTHENTICATION_HEADER_DIGEST_PATTERN = private static final Pattern WWW_AUTHENTICATION_HEADER_DIGEST_PATTERN =
......
...@@ -407,6 +407,16 @@ public final class RtspMessageUtilTest { ...@@ -407,6 +407,16 @@ public final class RtspMessageUtilTest {
} }
@Test @Test
public void parseSessionHeader_withSessionIdContainingSpecialCharactersAndTimeout_succeeds()
throws Exception {
String sessionHeaderString = "610a63df-9b57.4856_97ac$665f+56e9c04;timeout=60";
RtspMessageUtil.RtspSessionHeader sessionHeader =
RtspMessageUtil.parseSessionHeader(sessionHeaderString);
assertThat(sessionHeader.sessionId).isEqualTo("610a63df-9b57.4856_97ac$665f+56e9c04");
assertThat(sessionHeader.timeoutMs).isEqualTo(60_000);
}
@Test
public void removeUserInfo_withUserInfo() { public void removeUserInfo_withUserInfo() {
Uri uri = Uri.parse("rtsp://user:pass@foo.bar/foo.mkv"); Uri uri = Uri.parse("rtsp://user:pass@foo.bar/foo.mkv");
assertThat(RtspMessageUtil.removeUserInfo(uri)).isEqualTo(Uri.parse("rtsp://foo.bar/foo.mkv")); assertThat(RtspMessageUtil.removeUserInfo(uri)).isEqualTo(Uri.parse("rtsp://foo.bar/foo.mkv"));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment