all repos — tint2 @ 407aef37866fa4488f7c4f3f47bc475c2bd12ca7

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

Reset signal mask before executing commands (issue #674)
o9000 mrovi9000@gmail.com
commit

407aef37866fa4488f7c4f3f47bc475c2bd12ca7

parent

50c7bf77dea3d61da3e6fdb489a2d1199dfb6a3a

3 files changed, 13 insertions(+), 0 deletions(-)

jump to
M src/signals.csrc/signals.c

@@ -24,6 +24,16 @@ // signal handler is light as it should be

signal_pending = sig; } +void reset_signals() +{ + for (int sig = 1; sig < 32; sig++) { + signal(sig, SIG_DFL); + } + sigset_t signal_set; + sigemptyset(&signal_set); + sigprocmask(SIG_SETMASK, &signal_set, NULL); +} + void init_signals() { // Set signal handlers
M src/signals.hsrc/signals.h

@@ -5,6 +5,7 @@ void init_signals();

void init_signals_postconfig(); void emit_self_restart(const char *reason); int get_signal_pending(); +void reset_signals(); void handle_sigchld_events();
M src/util/common.csrc/util/common.c

@@ -59,6 +59,7 @@ #endif

#include "../panel.h" #include "timer.h" +#include "signals.h" void write_string(int fd, const char *s) {

@@ -398,6 +399,7 @@ // Run the command

if (dir) chdir(dir); close_all_fds(); + reset_signals(); if (terminal) { #if !defined(__OpenBSD__) fprintf(stderr, "tint2: executing in x-terminal-emulator: %s\n", command);