Skip to content

Commit

Permalink
http2: do not expand duplicate headers
Browse files Browse the repository at this point in the history
Ticket: 7104

As this can cause a big mamory allocation due to the quadratic
nature of the HPACK compression.
  • Loading branch information
catenacyber authored and victorjulien committed Jun 25, 2024
1 parent 37509e8 commit 5bd1793
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions rust/src/http2/detect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -433,11 +433,11 @@ pub fn http2_frames_get_header_value_vec(
if found == 0 {
vec.extend_from_slice(&block.value);
found = 1;
} else if found == 1 {
} else if found == 1 && Rc::strong_count(&block.name) <= 2 {
vec.extend_from_slice(&[b',', b' ']);
vec.extend_from_slice(&block.value);
found = 2;
} else {
} else if Rc::strong_count(&block.name) <= 2 {
vec.extend_from_slice(&[b',', b' ']);
vec.extend_from_slice(&block.value);
}
Expand Down Expand Up @@ -470,14 +470,14 @@ fn http2_frames_get_header_value<'a>(
if found == 0 {
single = Ok(&block.value);
found = 1;
} else if found == 1 {
} else if found == 1 && Rc::strong_count(&block.name) <= 2 {
if let Ok(s) = single {
vec.extend_from_slice(s);
}
vec.extend_from_slice(&[b',', b' ']);
vec.extend_from_slice(&block.value);
found = 2;
} else {
} else if Rc::strong_count(&block.name) <= 2 {
vec.extend_from_slice(&[b',', b' ']);
vec.extend_from_slice(&block.value);
}
Expand Down

0 comments on commit 5bd1793

Please sign in to comment.