From: Tom Gundersen Date: Mon, 29 Dec 2014 01:18:21 +0000 (+0100) Subject: rtnl: recv_message - don't enforce sender uid X-Git-Tag: v219~772 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=09773ef4462657bffadc568d08c962041fea9944 rtnl: recv_message - don't enforce sender uid All we care about is that the kernel (pid==0) sent the message. Verifying the sender uid seems to break when using userns. Reported by Stéphane Graber. --- diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c index 640c0ea93..36eb9f5b3 100644 --- a/src/libsystemd/sd-rtnl/rtnl-message.c +++ b/src/libsystemd/sd-rtnl/rtnl-message.c @@ -1363,10 +1363,10 @@ static int socket_recv_message(int fd, struct iovec *iov, uint32_t *_group, bool struct ucred *ucred = (void *)CMSG_DATA(cmsg); /* from the kernel */ - if (ucred->uid == 0 && ucred->pid == 0) + if (ucred->pid == 0) auth = true; else - log_debug("rtnl: ignoring message from uid %u pid %u", ucred->uid, ucred->pid); + log_debug("rtnl: ignoring message from pid %u", ucred->pid); } else if (cmsg->cmsg_level == SOL_NETLINK && cmsg->cmsg_type == NETLINK_PKTINFO && cmsg->cmsg_len == CMSG_LEN(sizeof(struct nl_pktinfo))) {