chiark / gitweb /
sd-event: check the value of received signal
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 3 Oct 2014 22:49:45 +0000 (18:49 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 4 Oct 2014 00:42:09 +0000 (20:42 -0400)
Appease coverity report #1237775.

Also rename ss to n, to make it visually different from ss.

src/libsystemd/sd-event/sd-event.c

index b56182dda76ce0d3c6a8defd2f1229b24ebf55ce..4c67ee87e137071230aa939820583ef5b7333704 100644 (file)
@@ -1973,20 +1973,22 @@ static int process_signal(sd_event *e, uint32_t events) {
 
         for (;;) {
                 struct signalfd_siginfo si;
-                ssize_t ss;
+                ssize_t n;
                 sd_event_source *s = NULL;
 
-                ss = read(e->signal_fd, &si, sizeof(si));
-                if (ss < 0) {
+                n = read(e->signal_fd, &si, sizeof(si));
+                if (n < 0) {
                         if (errno == EAGAIN || errno == EINTR)
                                 return read_one;
 
                         return -errno;
                 }
 
-                if (_unlikely_(ss != sizeof(si)))
+                if (_unlikely_(n != sizeof(si)))
                         return -EIO;
 
+                assert(si.ssi_signo < _NSIG);
+
                 read_one = true;
 
                 if (si.ssi_signo == SIGCHLD) {