-
Notifications
You must be signed in to change notification settings - Fork 5k
deps: update lshpack to v2.3.5 #31315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,7 +10,7 @@ | |
|
|
||
| import type { Dependency, DirectBuild } from "../source.ts"; | ||
|
|
||
| const LSHPACK_COMMIT = "8905c024b6d052f083a3d11d0a169b3c2735c8a1"; | ||
| const LSHPACK_COMMIT = "cf0f70dd10b352194c97448eb5d00b4aa484f531"; | ||
|
robobun marked this conversation as resolved.
robobun marked this conversation as resolved.
robobun marked this conversation as resolved.
claude[bot] marked this conversation as resolved.
claude[bot] marked this conversation as resolved.
claude[bot] marked this conversation as resolved.
claude[bot] marked this conversation as resolved.
robobun marked this conversation as resolved.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 The earlier (resolved) comment on v2.3.5's removed trailing-whitespace strip is now stale for the two paths it named — both have since gained full tchar validation — but a fourth decode loop was missed: Extended reasoning...What changed and why the earlier comment is staleThe resolved 2026-05-24 inline comment on this PR flagged that lshpack v2.3.5 ( That comment named two Bun call sites (
Grep confirms The residual gap
while off < payload.len() {
let header = match self.decode(&payload[off..]) { // :3679
Ok(h) => h,
Err(_) => { /* GOAWAY COMPRESSION_ERROR */ return Ok(end); }
};
off += header.next; // :3692
let js_name = match get_http2_common_string(...) {
Some(cached) => cached,
None => create_utf8_for_js(&global_object, header.name)?, // :3697
};
headers.push(&global_object, js_name)?;
headers.push(&global_object, create_utf8_for_js(&global_object, header.value)?)?; // :3703
...
}Between The only remaining upstream guard is Interaction with this PR (step-by-step)
So the Why nothing else catches it
ImpactLow. Requires a deliberately non-compliant server sending PUSH_PROMISE (a largely-deprecated feature) with a crafted literal header name. Worst outcome is an odd header key surfaced to JS — no crash, no memory issue, no security boundary crossed. The missing Suggested fixMirror if is_malformed_field_name(header.name) || is_malformed_field_value(header.value) {
// set a malformed flag and continue decoding (to keep HPACK dynamic-table state in sync),
// then RST/GOAWAY PROTOCOL_ERROR after the loop instead of dispatching onStreamPush
}
robobun marked this conversation as resolved.
robobun marked this conversation as resolved.
robobun marked this conversation as resolved.
robobun marked this conversation as resolved.
|
||
|
|
||
| export const lshpack: Dependency = { | ||
| name: "lshpack", | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.