Commit bc08387
CI: fix sanitizer link, Windows env, lint, and CodeQL snprintf finding
Four independent CI failure classes on the v2.0 matrix:
- tsan/msan/lsan link error: http_request_unescape_arena_test.cpp defines
global operator new/delete to count heap allocs; the tsan/msan/lsan
runtimes ship their own strong definitions, so the test collided at link
time (multiple definition). Guard the overrides out on those lanes via
-DLHS_SANITIZER_OWNS_OPERATOR_NEW (set in verify-build.yml) plus
__has_feature/__SANITIZE_THREAD__ fallbacks. With overrides absent the
counter stays 0, so the zero-global-alloc pins still hold and the
correctness/lifetime pins still exercise the real arena path.
- Windows (mingw gcc-16): <stdlib.h> no longer declares POSIX
setenv/unsetenv. Route the three debug_dump_request_body_* tests through
_putenv on _WIN32 (VAR= removes the variable under MSVCRT).
- cpplint gate (29 errors, surfaced now that the lint script runs): fixed
runtime/int, indent_namespace, blank_line, header_guard, IWYU (real
includes where legal, inline NOLINT in mid-class fragment headers),
TODO username, and try-clause newline formatting.
- CodeQL high-severity cpp/overflowing-snprintf in peer_address.cpp: the
IPv6 canonicaliser advanced `pos` by snprintf's return value, which
CodeQL traced into the next call's `sizeof(buf) - pos` size argument
(potential size_t underflow, CWE-190). A group is <=4 hex digits so it
never truncates with buf[40], but add the canonical bound guard so pos
is provably in-range.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NpysYDDJac63yz2mZKKiDf1 parent 36a25b0 commit bc08387
16 files changed
Lines changed: 111 additions & 31 deletions
File tree
- .github/workflows
- src
- detail
- httpserver
- detail
- test
- integ
- unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
992 | 992 | | |
993 | 993 | | |
994 | 994 | | |
995 | | - | |
| 995 | + | |
996 | 996 | | |
997 | 997 | | |
998 | | - | |
999 | | - | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
1000 | 1003 | | |
1001 | 1004 | | |
1002 | 1005 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
| 144 | + | |
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| |||
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | | - | |
| 209 | + | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
| 246 | + | |
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
250 | 250 | | |
251 | | - | |
| 251 | + | |
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
79 | | - | |
| 78 | + | |
80 | 79 | | |
81 | 80 | | |
82 | 81 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
362 | 362 | | |
363 | 363 | | |
364 | 364 | | |
365 | | - | |
| 365 | + | |
366 | 366 | | |
367 | 367 | | |
368 | 368 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
| 287 | + | |
287 | 288 | | |
288 | 289 | | |
289 | 290 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
129 | 137 | | |
130 | 138 | | |
131 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
320 | 321 | | |
321 | 322 | | |
322 | 323 | | |
| 324 | + | |
323 | 325 | | |
324 | 326 | | |
325 | 327 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
199 | 203 | | |
| 204 | + | |
200 | 205 | | |
201 | 206 | | |
0 commit comments