teknoraver / rpms / systemd

Forked from rpms/systemd 2 months ago
Clone

Blame 0496-sd-event-check-the-value-of-received-signal.patch

Zbigniew Jędrzejewski-Szmek 62fe94
From 7057bd993110c1eff0cd3a8776902ca66417634e Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Fri, 3 Oct 2014 18:49:45 -0400
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] sd-event: check the value of received signal
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Appease coverity report #1237775.
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Also rename ss to n, to make it visually different from ss.
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/libsystemd/sd-event/sd-event.c | 10 ++++++----
Zbigniew Jędrzejewski-Szmek 62fe94
 1 file changed, 6 insertions(+), 4 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
Zbigniew Jędrzejewski-Szmek 62fe94
index b56182dda7..4c67ee87e1 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/libsystemd/sd-event/sd-event.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/libsystemd/sd-event/sd-event.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1973,20 +1973,22 @@ static int process_signal(sd_event *e, uint32_t events) {
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         for (;;) {
Zbigniew Jędrzejewski-Szmek 62fe94
                 struct signalfd_siginfo si;
Zbigniew Jędrzejewski-Szmek 62fe94
-                ssize_t ss;
Zbigniew Jędrzejewski-Szmek 62fe94
+                ssize_t n;
Zbigniew Jędrzejewski-Szmek 62fe94
                 sd_event_source *s = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                ss = read(e->signal_fd, &si, sizeof(si));
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (ss < 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                n = read(e->signal_fd, &si, sizeof(si));
Zbigniew Jędrzejewski-Szmek 62fe94
+                if (n < 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
                         if (errno == EAGAIN || errno == EINTR)
Zbigniew Jędrzejewski-Szmek 62fe94
                                 return read_one;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                         return -errno;
Zbigniew Jędrzejewski-Szmek 62fe94
                 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (_unlikely_(ss != sizeof(si)))
Zbigniew Jędrzejewski-Szmek 62fe94
+                if (_unlikely_(n != sizeof(si)))
Zbigniew Jędrzejewski-Szmek 62fe94
                         return -EIO;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
+                assert(si.ssi_signo < _NSIG);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
                 read_one = true;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
                 if (si.ssi_signo == SIGCHLD) {