Package: valgrind Version: 1:3.20.0-2.1 Severity: important User: debian-...@lists.debian.org Usertags: 32bit-stackclash Tags: upstream
On armhf, valgrind dies with a SIGSEGV when checking certain programs built with either -fstack-clash-protection or -fstack-check. The following example is a reproducer: // example.c void a_function() { char buf[8192]; } int main() { a_function(); } The issue can be reproduced with: $ gcc -fstack-clash-protection example.c -o example && valgrind ./example ==2743356== Memcheck, a memory error detector ==2743356== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==2743356== Using Valgrind-3.20.0 and LibVEX; rerun with -h for copyright info ==2743356== Command: ./example ==2743356== ==2743356== ==2743356== Process terminating with default action of signal 11 (SIGSEGV) ==2743356== Access not within mapped region at address 0xFEF0CB04 ==2743356== at 0x1084EA: a_function (in /tmp/example) ==2743356== If you believe this happened as a result of a stack ==2743356== overflow in your program's main thread (unlikely but ==2743356== possible), you can try to increase the size of the ==2743356== main thread stack using the --main-stacksize= flag. ==2743356== The main thread stack size used in this run was 8388608. ==2743356== ==2743356== HEAP SUMMARY: ==2743356== in use at exit: 0 bytes in 0 blocks ==2743356== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==2743356== ==2743356== All heap blocks were freed -- no leaks are possible ==2743356== ==2743356== For lists of detected and suppressed errors, rerun with: -s ==2743356== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 3 from 3) Segmentation fault