From: David Tardon Date: Thu, 25 Jul 2024 08:06:34 +0000 (+0200) Subject: sd-event: do not assert on invalid signal X-Git-Tag: v257-rc1~820 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7a64c5f23efbb51fe4f1229c1a8aed6dd858a0a9;p=thirdparty%2Fsystemd.git sd-event: do not assert on invalid signal The signalfd_siginfo struct is received from outside via a FD, hence assert() is not appropriate way to check it. Just do a normal runtime check. --- diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index f1aed5de60e..a593d0e50db 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -3871,7 +3871,8 @@ static int process_signal(sd_event *e, struct signal_data *d, uint32_t events, i if (_unlikely_(n != sizeof(si))) return -EIO; - assert(SIGNAL_VALID(si.ssi_signo)); + if (_unlikely_(!SIGNAL_VALID(si.ssi_signo))) + return -EINVAL; if (e->signal_sources) s = e->signal_sources[si.ssi_signo];