Open GoogleCodeExporter opened 9 years ago
For the record, Clang does not support the ifunc attribute yet, so this is a
GCC-only problem.
Am I right that the resolver functions themselves aren't marked anyhow and may
reside in a different TU, so we can't decide to instrument them differently?
For now you'll need to mark your resolver functions with
__attribute__((no_sanitize_address)). Not sure if something can be done without
messing up with the linker (wonder why the resolver function is called before
.preinit_array initializer).
Original comment by ramosian.glider@gmail.com
on 18 Sep 2014 at 11:45
> For the record, Clang does not support the ifunc attribute yet,
> so this is a GCC-only problem.
There is a bug in LLVM Bugzilla about this so it may get to Clang eventually.
> Am I right that the resolver functions themselves aren't marked anyhow
> and may reside in a different TU,
> so we can't decide to instrument them differently?
Luckily not: "Finally, the indirect function needs to be defined in the same
translation unit as the resolver function" (from
https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html). So
looks like this could be detected by GCC.
Original comment by tetra2...@gmail.com
on 18 Sep 2014 at 12:32
Original issue reported on code.google.com by
chefM...@gmail.com
on 18 Sep 2014 at 10:36Attachments: