Skip to content

fix: reject an M-SEARCH MX value with trailing garbage#50

Merged
sbogomolov merged 1 commit into
mainfrom
fix/msearch-mx-trailing-garbage
Jul 9, 2026
Merged

fix: reject an M-SEARCH MX value with trailing garbage#50
sbogomolov merged 1 commit into
mainfrom
fix/msearch-mx-trailing-garbage

Conversation

@sbogomolov

Copy link
Copy Markdown
Owner

ParseMSearchMx checked from_chars's error code but never its end pointer, so "MX: 2abc" quietly parsed as 2. The MX grammar is a bare integer (UDA also has devices silently discard malformed search requests outright): require the whole value to be digits, tolerating trailing whitespace like the DIAL framer's Content-Length parse.

Deliberate scope: a malformed value is rejected as a value, not as a message — the search still reflects, with the default window and the existing INFO log. That keeps malformed MX coherent with the existing missing-MX tolerance (the reflector reflects verbatim and lets target devices apply their own spec enforcement).

Tests: "2abc" / "2 seconds" rejected (fails without the fix), "2 " / "3\t" still parse (whitespace tolerance pinned).

Native unit (ASan/UBSan) 849/849 green locally; the full local gate is running in parallel with this PR's CI — I'll flag anything it turns up.

ParseMSearchMx checked from_chars's error code but never its end
pointer, so "MX: 2abc" quietly parsed as 2. The MX grammar is a bare
integer (UDA): require the whole value to be digits, tolerating
trailing whitespace like the DIAL framer's Content-Length parse. A
malformed value now classifies as invalid — the search still reflects,
with the default window and the existing INFO log, matching the
missing-MX policy.
@sbogomolov sbogomolov self-assigned this Jul 9, 2026
@sbogomolov
sbogomolov merged commit 071e98f into main Jul 9, 2026
17 checks passed
@sbogomolov
sbogomolov deleted the fix/msearch-mx-trailing-garbage branch July 9, 2026 00:49
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