~emersion/basu

b0171b1daf61773c5ae8160633de6b5d4ff6c8a2 — Kenny Levinsen 2 years ago 503df06
bus-socket: Skip cap check instead of -ENOSYS

Returning -ENOSYS meant that any permission check would fail if we
didn't have capabilities, which lead us to fail before seeing that
server/client were the same PID, which is special-cased to be okay.

Instead set -1, so that we just skip capability tests.
1 files changed, 1 insertions(+), 1 deletions(-)

M src/libsystemd/sd-bus/bus-objects.c
M src/libsystemd/sd-bus/bus-objects.c => src/libsystemd/sd-bus/bus-objects.c +1 -1
@@ 325,7 325,7 @@ static int check_access(sd_bus *bus, sd_bus_message *m, struct vtable_member *c,
#if HAVE_LIBCAP
                cap = CAP_SYS_ADMIN;
#else
                return -ENOTSUP;
                cap = -1;
#endif
        else
                cap--;