Commit af82b22
committed
fix: guard RemoteAddr parsing against out-of-bounds slice panic
addKnownVariablesToServer stripped IPv6 brackets with an unchecked
slice (ip[1:len(ip)-1]). A malformed RemoteAddr such as "[" or
"[:9000" produced a 1-byte ip and panicked. This runs inside the
go_register_server_variables cgo callback, where a Go panic cannot
unwind through the C frame and aborts the whole process rather than
failing a single request.
Extract splitRemoteAddr, which parses via net.SplitHostPort and falls
back to a bounds-safe lenient split that only strips brackets when both
are present. Behavior for well-formed addresses is unchanged.1 parent 8c9e331 commit af82b22
2 files changed
Lines changed: 54 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
| 48 | + | |
60 | 49 | | |
61 | 50 | | |
62 | 51 | | |
| |||
354 | 343 | | |
355 | 344 | | |
356 | 345 | | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
357 | 368 | | |
358 | 369 | | |
359 | 370 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
36 | 67 | | |
37 | 68 | | |
38 | 69 | | |
| |||
0 commit comments