core: explicitly specify credentials for direct connections, too

So far we authenticate direct connections primarily at connection time,
but let's also do this for each method individually, by attaching the
creds we need for that right away.
This commit is contained in:
Lennart Poettering 2015-04-23 00:37:47 +02:00
parent e346512c68
commit 0674bbea9c
2 changed files with 10 additions and 1 deletions

View file

@ -670,6 +670,15 @@ static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void
return 0;
}
r = sd_bus_negotiate_creds(bus, 1,
SD_BUS_CREDS_PID|SD_BUS_CREDS_UID|
SD_BUS_CREDS_EUID|SD_BUS_CREDS_EFFECTIVE_CAPS|
SD_BUS_CREDS_SELINUX_CONTEXT);
if (r < 0) {
log_warning_errno(r, "Failed to enable credentials for new connection: %m");
return 0;
}
r = sd_bus_start(bus);
if (r < 0) {
log_warning_errno(r, "Failed to start new connection bus: %m");

View file

@ -916,7 +916,7 @@ static int bus_socket_make_message(sd_bus *bus, size_t size) {
bus->rbuffer, size,
bus->fds, bus->n_fds,
!bus->bus_client && bus->ucred_valid ? &bus->ucred : NULL,
!bus->bus_client && bus->label[0] ? bus->label : NULL,
!bus->bus_client && !isempty(bus->label) ? bus->label : NULL,
&t);
if (r < 0) {
free(b);