Skip to content

Harden record parser helpers against offset+length overflow - #100

Open
Yeounui wants to merge 1 commit into
mjansson:mainfrom
Yeounui:harden-record-parser-overflow
Open

Harden record parser helpers against offset+length overflow#100
Yeounui wants to merge 1 commit into
mjansson:mainfrom
Yeounui:harden-record-parser-overflow

Conversation

@Yeounui

@Yeounui Yeounui commented Aug 28, 2026

Copy link
Copy Markdown

Hello. Thank you for this project.

The record parsing helpers do the bounds check as 'size >= offset + length'.
If an offset or length (both size_t) is very large, the sum can overflow and wrap around, so the check passes and the parser reads out of bounds.

Suggested fix: 'offset <= size && length <= size - offset'.
Not reachable from the packet path (record length is a checked uint16_t); this just guards the helpers against a caller passing a bad offset or length, e.g. from unchecked size_t arithmetic.

I also added a small CTest regression for a near-SIZE_MAX offset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant