summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-03-16 02:55:55 +0100
committerLennart Poettering <lennart@poettering.net>2011-03-16 02:55:55 +0100
commitdfa7f7e139e465c7685fd530d61a52c41184bcde (patch)
tree6329c6a316fc18be850b80149708cd49444d3462
parentf9b72cd804f99222cf999c63eb3610a7f54bbf2c (diff)
main: check if we have a valid PID before getting the name of it
-rw-r--r--src/kmsg-syslogd.c4
-rw-r--r--src/manager.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/kmsg-syslogd.c b/src/kmsg-syslogd.c
index 4edb16136..c78011fe2 100644
--- a/src/kmsg-syslogd.c
+++ b/src/kmsg-syslogd.c
@@ -354,7 +354,9 @@ static int write_message(Server *s, const char *buf, struct ucred *ucred) {
/* Then, add process if set */
if (read_process(&buf, &iovec[i]) > 0)
i++;
- else if (ucred && get_process_name(ucred->pid, &process) >= 0)
+ else if (ucred &&
+ ucred->pid > 0 &&
+ get_process_name(ucred->pid, &process) >= 0)
IOVEC_SET_STRING(iovec[i++], process);
/* Skip the stored PID if we have a better one */
diff --git a/src/manager.c b/src/manager.c
index df75eca8c..9edb8f09b 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2070,7 +2070,9 @@ static int manager_process_signal_fd(Manager *m) {
return -errno;
}
- get_process_name(sfsi.ssi_pid, &p);
+ if (sfsi.ssi_pid > 0)
+ get_process_name(sfsi.ssi_pid, &p);
+
log_debug("Received SIG%s from PID %lu (%s)",
strna(signal_to_string(sfsi.ssi_signo)),
(unsigned long) sfsi.ssi_pid, strna(p));