On Tue, Jun 24, 2025 at 11:19:53AM +0200, Csókás Bence wrote: > Hi, > > On 2025. 06. 14. 18:09, Nadav Tasher wrote: > > This commit adds the reset_all_signals() function, > > which resets all custom signal handlers to the default > > signal handler (SIG_DFL). > > > > Signed-off-by: Nadav Tasher <tasherna...@gmail.com> > > --- > > include/libbb.h | 2 ++ > > libbb/signals.c | 26 ++++++++++++++++++++++++++ > > 2 files changed, 28 insertions(+) > > > > diff --git a/include/libbb.h b/include/libbb.h > > index ed2af5af2..11d2c27ec 100644 > > --- a/include/libbb.h > > +++ b/include/libbb.h > > @@ -649,6 +649,8 @@ int sigprocmask2(int how, sigset_t *set) FAST_FUNC; > > /* Standard handler which just records signo */ > > extern smallint bb_got_signal; > > void record_signo(int signo); /* not FAST_FUNC! */ > > +/* Resets all signal handlers just like exec() does */ > > +void reset_all_signals(void) FAST_FUNC; > > void xsetgid(gid_t gid) FAST_FUNC; > > diff --git a/libbb/signals.c b/libbb/signals.c > > index 0bebc847d..2211a8bac 100644 > > --- a/libbb/signals.c > > +++ b/libbb/signals.c > > @@ -128,3 +128,29 @@ void FAST_FUNC signal_no_SA_RESTART_empty_mask(int > > sig, void (*handler)(int)) > > sa.sa_handler = handler; > > sigaction_set(sig, &sa); > > } > > + > > +void FAST_FUNC reset_all_signals(void) > > +{ > > + struct sigaction sa; > > spaces -> tabs > Will fix in next revision. Thanks!
> > + memset(&sa, 0, sizeof(sa)); > > + > > + /* used as the default sigaction */ > > + sa.sa_handler = SIG_DFL; > > + > > + for (int sig = 1; sig < NSIG; ++sig) { > > + struct sigaction old; > > + > > + /* returns 0 on success*/ > > + if (sigaction(sig, NULL, &old) != 0) > > + continue; > > + > > + if (old.sa_handler == SIG_IGN) > > + continue; > > + > > + if (old.sa_handler == SIG_DFL) > > + continue; > > + > > + /* change signal handler to default */ > > + sigaction(sig, &sa, NULL); > > + } > > +} > > \ No newline at end of file > > _______________________________________________ busybox mailing list busybox@busybox.net https://lists.busybox.net/mailman/listinfo/busybox