X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-rtnl%2Frtnl-message.c;h=484613351d6d7de2c1267634e5d7fde8b83e311c;hp=640c0ea93eadf34f451ef9ce3a492923ccef122f;hb=8facc3498ed037f842891ff55d1f60fe834f4ba0;hpb=c7460cce79fd358f2745bd390bd2e7ded450ee62 diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c index 640c0ea93..484613351 100644 --- a/src/libsystemd/sd-rtnl/rtnl-message.c +++ b/src/libsystemd/sd-rtnl/rtnl-message.c @@ -43,7 +43,7 @@ static int message_new_empty(sd_rtnl *rtnl, sd_rtnl_message **ret) { assert_return(ret, -EINVAL); - /* Note that 'rtnl' is curretly unused, if we start using it internally + /* Note that 'rtnl' is currently unused, if we start using it internally we must take care to avoid problems due to mutual references between busses and their queued messages. See sd-bus. */ @@ -586,7 +586,7 @@ sd_rtnl_message *sd_rtnl_message_ref(sd_rtnl_message *m) { } sd_rtnl_message *sd_rtnl_message_unref(sd_rtnl_message *m) { - if (m && REFCNT_DEC(m->n_ref) <= 0) { + if (m && REFCNT_DEC(m->n_ref) == 0) { unsigned i; free(m->hdr); @@ -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))) { @@ -1476,7 +1476,7 @@ int socket_read_message(sd_rtnl *rtnl) { r = type_system_get_type(NULL, &nl_type, new_msg->nlmsg_type); if (r < 0) { if (r == -ENOTSUP) - log_debug("sd-rtnl: ignored message with unknown type: %u", + log_debug("sd-rtnl: ignored message with unknown type: %i", new_msg->nlmsg_type); continue;