Fix SIGSEGV by skipping non-readable stack guard pages#95
Merged
JingMatrix merged 1 commit intomasterfrom Feb 19, 2026
Merged
Conversation
This commit fixeas a crash observed on specific devices (e.g., Redmi Note 10 Pro "sweet", Kernel 4.14) where `nativeForkSystemServer_pre` triggered a SIGSEGV (SEGV_ACCERR) when attempting to read the `[anon:stack_and_tls:main]` memory map. We conjecture that the kernel on these devices reports the Stack Guard Page as part of the VMA range for the main thread's stack. A Guard Page is a memory region allocated at the limit of the stack with `PROT_NONE` permissions (no read/write/exec) to trap stack overflows. Changes: - Added a check for `PROT_READ` in the map iteration loop. - Applied minor clang-format style fixes to pointer alignment in `module.cpp`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit fixeas a crash observed on specific devices (e.g., Redmi Note 10 Pro "sweet", Kernel 4.14) where
nativeForkSystemServer_pretriggered a SIGSEGV (SEGV_ACCERR) when attempting to read the[anon:stack_and_tls:main]memory map.We conjecture that the kernel on these devices reports the Stack Guard Page as part of the VMA range for the main thread's stack. A Guard Page is a memory region allocated at the limit of the stack with
PROT_NONEpermissions (no read/write/exec) to trap stack overflows.Changes:
PROT_READin the map iteration loop.module.cpp.