summaryrefslogtreecommitdiff
path: root/src/libelogind
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-04-22 13:27:29 +0200
committerSven Eden <yamakuzure@gmx.net>2017-03-14 08:09:37 +0100
commit95889ba3d6c212459d8ec946b6cbaed64ba648fc (patch)
treec1bb9a5337ba51006225ff1a1ae9e8fcd3c6676d /src/libelogind
parent4ca08d04542ec2830968a450ee27cc90c28f571a (diff)
sd-bus: handle ppid=0 more gracefully (which happens for pid=1)
Diffstat (limited to 'src/libelogind')
-rw-r--r--src/libelogind/sd-bus/bus-creds.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libelogind/sd-bus/bus-creds.c b/src/libelogind/sd-bus/bus-creds.c
index ab48aafcc..9d519c473 100644
--- a/src/libelogind/sd-bus/bus-creds.c
+++ b/src/libelogind/sd-bus/bus-creds.c
@@ -734,11 +734,14 @@ int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, pid_t pid, pid_t tid) {
if (p) {
p += strspn(p, WHITESPACE);
- r = parse_pid(p, &c->ppid);
- if (r < 0)
- return r;
+ /* Explicitly check for PPID 0 (which is the case for PID 1) */
+ if (!streq(p, "0")) {
+ r = parse_pid(p, &c->ppid);
+ if (r < 0)
+ return r;
- c->mask |= SD_BUS_CREDS_PPID;
+ c->mask |= SD_BUS_CREDS_PPID;
+ }
continue;
}
}