Skip to content

Commit ea0ea88

Browse files
committed
fix: another fuzz-issue that could cause long parse times of URLs
1 parent ac1d8d4 commit ea0ea88

File tree

3 files changed

+2
-1
lines changed

3 files changed

+2
-1
lines changed

gix-url/src/parse.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ pub(crate) fn url(input: &BStr, protocol_end: usize) -> Result<crate::Url, Error
8686
const MAX_LEN: usize = 1024;
8787
let bytes_to_path = input[protocol_end + "://".len()..]
8888
.iter()
89+
.filter(|b| !b.is_ascii_whitespace())
8990
.skip_while(|b| **b == b'/')
9091
.position(|b| *b == b'/')
9192
.unwrap_or(input.len() - protocol_end);
112 KB
Binary file not shown.

gix-url/tests/parse/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ mod unknown {
139139

140140
#[test]
141141
fn fuzzed() {
142-
for name in ["very-long", "very-long2", "very-long3"] {
142+
for name in ["very-long4", "very-long3", "very-long2", "very-long"] {
143143
let base = Path::new("tests").join("fixtures").join("fuzzed");
144144
let location = base.join(Path::new(name).with_extension("url"));
145145
let url = std::fs::read(&location).unwrap();

0 commit comments

Comments
 (0)