fix(ping): correct inverted strncasecmp in get_namebyhost#525
fix(ping): correct inverted strncasecmp in get_namebyhost#525somethingwithproof wants to merge 1 commit into
Conversation
strncasecmp() returns 0 on match, but the comparisons used the raw return value as truthy, inverting the logic. TCP matched non-TCP strings and vice versa. Also fix: comparisons against 'hostname' instead of 'token' (lines 1020, 1032), and strncasecmp length 3 for 4-char strings "TCP6"/"UDP6" (should be 4). Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
There was a problem hiding this comment.
Pull request overview
Fixes method parsing in get_namebyhost() by correcting inverted strncasecmp() checks and ensuring the comparisons are made against the parsed token with the proper match lengths, preventing TCP/UDP method mis-detection.
Changes:
- Corrected
strncasecmp(...)conditionals to explicitly check== 0for matches. - Fixed comparisons to use
token(nothostname) when identifyingTCP/UDPmethods. - Corrected
TCP6/UDP6comparisons to use length4instead of3.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Code-reviewed as part of a batch with #525-#531. These 7 atomic bug fixes are independent of each other and can be merged in any order; recommend bundling into a single dated release. The Windows/CMake work in #523/#524 should follow this batch, and #512 (production CI pipeline) should be split into smaller PRs before review. |
|
Superseded by #523 after consolidation to reduce overlap and merge conflicts. |
strncasecmp() returns 0 on match, but the comparisons used the raw return value as truthy, inverting the logic. TCP matched non-TCP strings and vice versa. Also fixes comparisons against 'hostname' instead of 'token', and strncasecmp length 3 for 4-char strings TCP6/UDP6.