|
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) {
|