Skip to content

Commit b9b97bb

Browse files
committed
Reject too-long IPs quicker
Now that there can't be a bunch of leading zeros, parsing can be optimized a bit.
1 parent 69de693 commit b9b97bb

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

library/std/src/net/parser.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,12 @@ impl FromStr for IpAddr {
289289
impl FromStr for Ipv4Addr {
290290
type Err = AddrParseError;
291291
fn from_str(s: &str) -> Result<Ipv4Addr, AddrParseError> {
292-
Parser::new(s).parse_with(|p| p.read_ipv4_addr())
292+
// don't try to parse if too long
293+
if s.len() > 15 {
294+
Err(AddrParseError(()))
295+
} else {
296+
Parser::new(s).parse_with(|p| p.read_ipv4_addr())
297+
}
293298
}
294299
}
295300

0 commit comments

Comments
 (0)