diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-03-06 15:37:56 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-03-06 15:37:56 -0800 |
| commit | 3c2c516d0c4be32b003ab67132475f8fd7453e65 (patch) | |
| tree | f2a0fc4a2a940c156bc71f92e58d1e7d1e86ffd2 /src/libstd | |
| parent | 31af63748bbe62adab6bed6008deca67911bd0d2 (diff) | |
| parent | 65b4eda5a6f270f5c30beec66c59825aba0524b9 (diff) | |
| download | rust-3c2c516d0c4be32b003ab67132475f8fd7453e65.tar.gz rust-3c2c516d0c4be32b003ab67132475f8fd7453e65.zip | |
rollup merge of #23097: alexcrichton/issue-23076
The `rsplitn` call was called with 2 instead of 1 so the iterator would yield 3 items in some cases, not the 2 that it should have. Closes #23076
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/net/addr.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstd/net/addr.rs b/src/libstd/net/addr.rs index 916abe78eb3..d975369af49 100644 --- a/src/libstd/net/addr.rs +++ b/src/libstd/net/addr.rs @@ -293,7 +293,7 @@ impl ToSocketAddrs for str { } // split the string by ':' and convert the second part to u16 - let mut parts_iter = self.rsplitn(2, ':'); + let mut parts_iter = self.rsplitn(1, ':'); let port_str = try_opt!(parts_iter.next(), "invalid socket address"); let host = try_opt!(parts_iter.next(), "invalid socket address"); let port: u16 = try_opt!(port_str.parse().ok(), "invalid port value"); @@ -590,4 +590,9 @@ mod tests { let a = SocketAddr::new(IpAddr::new_v4(127, 0, 0, 1), 23924); assert!(tsa("localhost:23924").unwrap().contains(&a)); } + + #[test] + fn to_socket_addr_str_bad() { + assert!(tsa("1200::AB00:1234::2552:7777:1313:34300").is_err()); + } } |
