https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67336
Bug ID: 67336 Summary: Verify pointers during stack unwind Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgcc Assignee: unassigned at gcc dot gnu.org Reporter: y.gribov at samsung dot com CC: v.garbuzov at samsung dot com Target Milestone: --- Invalid or incomplete unwind tables may cause generation of random invalid pointers which cause libgcc unwinders to access unmapped memory locations and terminate process with SIGSEGV. Libunwind has recently addressed this by adding msync check prior to memory access (http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=commit;h=770152268807e460184b4152e23aba9c86601090). It may make sense to do the same for libgcc unwinders. As syscall overhead may be too heavy for normal use, perhaps we could add separate unwinder variants with verified memory accesses and use these when speed is not important (e.g. in backtrace(3)).