Closed Bug 1465859 Opened 2 years ago Closed 1 year ago

Investigate ShadowCallStack

Categories

(Core :: Security, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: tjr, Unassigned)

References

(Blocks 1 open bug)

Details

I did a test build with current clang-8, it crashes very early on startup:

Program received signal SIGSEGV, Segmentation fault.
0x0000555555577b77 in Allocator<ReplaceMallocBase>::malloc (arg1=72704)
    at /home/morbo/hg/firefox/memory/build/malloc_decls.h:37
37      MALLOC_DECL(malloc, void*, size_t)
(gdb) bt
#0  0x0000555555577b77 in Allocator<ReplaceMallocBase>::malloc (arg1=72704)
    at /home/morbo/hg/firefox/memory/build/malloc_decls.h:37
#1  0x00007ffff76b8376 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00007ffff7de5733 in call_init (env=0x7fffffffd770, argv=0x7fffffffd748, argc=4, 
    l=<optimized out>) at dl-init.c:72
#3  _dl_init (main_map=0x7ffff7ffe170, argc=4, argv=0x7fffffffd748, env=0x7fffffffd770)
    at dl-init.c:119
#4  0x00007ffff7dd60ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2

"This generally means that any code that may run on the same thread as code compiled with ShadowCallStack must either target one of the platforms whose ABI reserves x18 (currently Darwin, Fuchsia and Windows) or be compiled with the flag -ffixed-x18."

Hmm, we can do this for our own code, but might be an issue for library calls?

I tested this on Linux, so maybe trying this on Windows is more useful given the above.

Removed here: https://github.com/llvm-mirror/llvm/commit/863ea8c618b1f88ba8c9ec355a07cb3783481642

The runtime issue would have made this a problem regardless.

Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.