summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-03-30 15:18:31 +0100
committerLennart Poettering <lennart@poettering.net>2013-03-30 15:21:55 +0100
commit0f4b73c8d379183678d5b99cf235f24c8ebd32f3 (patch)
treeda9fff8d5c95fc1afe9c8e392f6318f9376bc5e0 /src/libsystemd-bus
parent3d339fec29178af415cb5367fdf3b53fab3093c2 (diff)
bus: enable SO_PASSCRED only if we are not connected to a bus
Diffstat (limited to 'src/libsystemd-bus')
-rw-r--r--src/libsystemd-bus/bus-socket.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libsystemd-bus/bus-socket.c b/src/libsystemd-bus/bus-socket.c
index 4f1fd94548..9512d2e318 100644
--- a/src/libsystemd-bus/bus-socket.c
+++ b/src/libsystemd-bus/bus-socket.c
@@ -202,15 +202,15 @@ static int bus_socket_read_auth(sd_bus *b) {
}
static int bus_socket_setup(sd_bus *b) {
- int one;
+ int enable;
assert(b);
/* Enable SO_PASSCRED + SO_PASSEC. We try this on any
* socket, just in case. */
- one = 1;
- setsockopt(b->fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one));
- setsockopt(b->fd, SOL_SOCKET, SO_PASSSEC, &one, sizeof(one));
+ enable = !b->bus_client;
+ setsockopt(b->fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable));
+ setsockopt(b->fd, SOL_SOCKET, SO_PASSSEC, &enable, sizeof(enable));
/* Increase the buffers to a MB */
fd_inc_rcvbuf(b->fd, 1024*1024);
@@ -467,8 +467,8 @@ static int bus_socket_make_message(sd_bus *bus, size_t size, sd_bus_message **m)
r = bus_message_from_malloc(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->ucred_valid ? &bus->ucred : NULL,
+ bus->label[0] ? bus->label : NULL,
&t);
if (r < 0) {
free(b);