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:
parent
4f7cd56ef2
commit
236f83afa9
@ -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.");
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user