Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix
ignore_noninstrumented_modules
on Linux
My initial implementation of `ignore_noninstrumented_modules` for Linux (landed in 6159242) did not consider that the GNU symbol table could be present but empty. "Empty" means: void of real symbol entries, but potential "terminator/placeholder" symbols that are skipped via `header->symoffset`. In this case `last_symbol` is zero and we should avoid computing `chains[last_symbol - header->symoffset]`. This bug seems to only manifest in combination with `LD_PRELOAD` (counterpart of `DYLD_INSERT_LIBRARIES` for Linux) and for small binaries, (e.g., the "not" utility from the llvm test suite) that have segments without any real symbols. This should fix the remaining failing ASan tests on the Swift Linux CI. rdar://57566645
- Loading branch information