This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug sanitizer/71042] libtsan requires __pointer_chk_guard@GLIBC_PRIVATE (6)


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71042

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at gcc dot gnu.org

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
rpm tracks symbol versioning dependencies of binaries/libraries, and filters
out GLIBC_PRIVATE symbols to make sure apps don't use the private symbols (the
only exception is that glibc libraries/binaries can use those symbols
themselves).
The GLIBC_PRIVATE stands for symbols that aren't part of the exported glibc
ABI, can be changed at any time.  So dlsym would be only ugly cheating here.

In theory you could get the pointer mangling value for the current thread e.g.
by calling the original libc setjmp function or some other function where glibc
performs pointer mangling, and if you know which field glibc mangles and the
expected unmangled value there, you should be able to recover the
__pointer_chk_guard value from the pair of mangled and unmangled pointers,
because the mangling is just xor + rotate.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]