https://bugs.kde.org/show_bug.cgi?id=359871
--- Comment #4 from Steven Smith <so...@archy.org.uk> --- The reason that sanitize_client_sigmask() doesn't help here is that ppoll() sets its own temporary signal mask, independent of the normal thread one, and sanitization is only applied to the thread's mask. The special mask used by ppoll() is passed through verbatim from the client to the kernel, so if the client says ``block SIGVGKILL'', that's exactly what happens. I don't know a great deal (or anything, really) about the Valgrind internals, but I imagine the correct fix would involve applying sanitization to the ppoll() mask as well. My first attempt at a fix was to have the PRE() hook copy the necessary bits into monitor memory and then VG_(do_syscall) itself to actually run the call itself, except that then you've unblocked signals outside of the blksys_setup/blksys_finished range, which seems to confuse VG_(fixup_guest_state_after_syscall_interrupted). Extending the core signal handling logic enough to handle that seemed like it was going to be hairy; hence giving up and just modifying the client's sigmask in-place. Which seems to work, and was certainly enough that the program I was working on started running under Valgrind, but would perhaps cause problems for some other clients? -- You are receiving this mail because: You are watching all bug changes.