mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-06-11 09:07:15 +00:00
Enable ASAN detect_stack_use_after_return for #2431 repro
The bug is a textbook stack-use-after-return: a stack-local struct gaicb is destroyed when getaddrinfo_with_timeout returns after gai_cancel() yields EAI_NOTCANCELED, then the still-live resolver worker thread writes back into the freed frame. ASAN's detect_stack_use_after_return is the direct detector for exactly this pattern -- enabling it lets the failure surface as a clear ASAN diagnostic during the test run instead of as an orphan-process hang at job teardown.
This commit is contained in:
6
.github/workflows/test.yaml
vendored
6
.github/workflows/test.yaml
vendored
@@ -164,7 +164,13 @@ jobs:
|
||||
run: |
|
||||
cd test
|
||||
ARCH=$(uname -m)
|
||||
# detect_stack_use_after_return=1 is the direct detector for this
|
||||
# bug: when the resolver worker writes back to the destroyed
|
||||
# stack-local gaicb, ASAN aborts immediately with a stack trace
|
||||
# naming getaddrinfo_with_timeout. Without it the bug only shows
|
||||
# up as an orphan-process hang at job teardown.
|
||||
CPPHTTPLIB_TEST_ISSUE_2431=1 \
|
||||
ASAN_OPTIONS=detect_stack_use_after_return=1 \
|
||||
LSAN_OPTIONS=suppressions=lsan_suppressions.txt \
|
||||
setarch "$ARCH" -R \
|
||||
./test --gtest_filter='GetAddrInfoAsyncCancelTest.*'
|
||||
|
||||
Reference in New Issue
Block a user