Arun Sharma wrote: >For local unwinding, we have a defence mechanism against bad/missing >unwind information, which could result in libunwind dereferencing >bad pointers. This mechanism is based on msync(2) system call and >significantly reduces the chances of a bad pointer dereference in >libunwind.
msync(2) does not protect against reading from mapped but read-protected addresses (MAP_NONE), which are not uncommon on x86_64. We recently had a number of crashes resulting from this (although libunwind was not directly involved in this case). We are not aware of a good replacement, but pread(2) from /proc/self/mem is surprisingly fast on Linux and would perhaps work. Catching SIGSEGV is another messy (and expensive) alternative. _______________________________________________ Libunwind-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/libunwind-devel
