https://bugs.kde.org/show_bug.cgi?id=367942
Bug ID: 367942 Summary: Segfault vgPlain_do_sys_sigaction (m_signals.c:1138) Product: valgrind Version: 3.10.0 Platform: Debian stable OS: Linux Status: UNCONFIRMED Severity: crash Priority: NOR Component: general Assignee: jsew...@acm.org Reporter: brian.carpen...@gmail.com Valgrind 3.10.0-4 on Debian 8.5 x64. This Perl script crashed the Perl interpreter which crashed Valgrind. The Perl script is 100% expected to crash Perl, but I wouldn't expect that to crash Valgrind and after talking to a Perl developer, syscalls from Perl shouldn't crash Valgrind unless the syscall is something like kill(valgrind_pid, SIGSEGV). In this case it's performing a read (syscall 0) with garbage arguments. valgrind perl -e '{0!~0}map{$_=syscall$0++}Y..$:' It'll hang here: ==20465== Syscall param read(buf) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4000 is not stack'd, malloc'd or (recently) free'd ==20465== Tap Enter on your keyboard: ==20465== Syscall param write(buf) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4000 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param open(filename) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param stat(file_name) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param stat(buf) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4000 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param fstat(buf) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4000 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param lstat(file_name) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param lstat(buf) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4000 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param poll(ufds.fd) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param poll(ufds.events) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param poll(ufds.revents) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x6 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param rt_sigaction(act->sa_handler) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4000 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param rt_sigaction(act->sa_mask) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4018 is not stack'd, malloc'd or (recently) free'd ==20465== ==20465== Syscall param rt_sigaction(act->sa_flags) points to unaddressable byte(s) ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) ==20465== Address 0x4008 is not stack'd, malloc'd or (recently) free'd ==20465== --20465-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting --20465-- si_code=1; Faulting address: 0x400B; sp: 0x802f2ccb0 valgrind: the 'impossible' happened: Killed by fatal signal host stacktrace: ==20465== at 0x38114E5C: vgSysWrap_linux_sys_rt_sigaction_before (syswrap-linux.c:3242) ==20465== by 0x380F82D5: vgPlain_client_syscall (syswrap-main.c:1586) ==20465== by 0x380F4B5A: handle_syscall (scheduler.c:1103) ==20465== by 0x380F6226: vgPlain_scheduler (scheduler.c:1416) ==20465== by 0x38105B60: thread_wrapper (syswrap-linux.c:103) ==20465== by 0x38105B60: run_a_thread_NORETURN (syswrap-linux.c:156) sched status: running_tid=1 Thread 1: status = VgTs_Runnable ==20465== at 0x5C8D809: syscall (syscall.S:38) ==20465== by 0x59A94D: Perl_pp_syscall (pp_sys.c:5711) ==20465== by 0x4D6261: Perl_runops_debug (dump.c:2234) ==20465== by 0x452E96: S_run_body (perl.c:2525) ==20465== by 0x452E96: perl_run (perl.c:2448) ==20465== by 0x421834: main (perlmain.c:123) -- You are receiving this mail because: You are watching all bug changes.