1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-15 05:57:26 +03:00

bus-creds: always set SD_BUS_CREDS_PID when we set pid in the mask

Also reorder the code a bit to be easier to parse.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2015-05-24 20:20:06 -04:00
parent 4f7cd56ef2
commit 236f83afa9
2 changed files with 7 additions and 8 deletions

View File

@ -261,7 +261,7 @@ int mac_selinux_generic_access_check(
audit_info.path = path;
audit_info.cmdline = cl;
r = selinux_check_access((security_context_t) scon, fcon, tclass, permission, &audit_info);
r = selinux_check_access(scon, fcon, tclass, permission, &audit_info);
if (r < 0)
r = sd_bus_error_setf(error, SD_BUS_ERROR_ACCESS_DENIED, "SELinux policy denies access.");

View File

@ -773,11 +773,13 @@ int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, pid_t pid, pid_t tid) {
return 0;
/* Try to retrieve PID from creds if it wasn't passed to us */
if (pid <= 0 && (c->mask & SD_BUS_CREDS_PID))
if (pid > 0) {
c->pid = pid;
c->mask |= SD_BUS_CREDS_PID;
} else if (c->mask & SD_BUS_CREDS_PID)
pid = c->pid;
else
/* Without pid we cannot do much... */
if (pid <= 0)
return 0;
/* Try to retrieve TID from creds if it wasn't passed to us */
@ -789,9 +791,6 @@ int bus_creds_add_more(sd_bus_creds *c, uint64_t mask, pid_t pid, pid_t tid) {
if (missing == 0)
return 0;
c->pid = pid;
c->mask |= SD_BUS_CREDS_PID;
if (tid > 0) {
c->tid = tid;
c->mask |= SD_BUS_CREDS_TID;