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

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The thing is that programs or libraries compiled/linked against glibc 2.24+
might contain garbage in the high 32 bits of those values.
So using e.g. kernel APIs directly in the wrappers will misbehave and so would
the asan etc. diagnostics.
I really think we either should symbol version all of libsanitizer (but the
wrappers around libc functions should use the symbol versions from libc, so it
will be non-fun, because the exact versions differ between different
architectures), or always ignore the high bits, or at runtime check if we are
running against glibc 2.24+ and only ignore the high bits in that case (the
compatibility with pre-2.24 compiled objects would still not be perfect, as
we'd ignore the upper bits when running against glibc 2.24+, but when running
against older glibc we'd honor those).

Reply via email to