From e239ff31a5c442ac1d006e836bc622371842dfa0 Mon Sep 17 00:00:00 2001 From: Daniel Lezcano Date: Fri, 23 Jul 2010 15:10:38 +0200 Subject: [PATCH] Fix bad returned value In case of error the message will be always truncated. We check the message was truncated with the total size received which means the kernel as more info to give. Signed-off-by: Daniel Lezcano --- src/lxc/nl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lxc/nl.c b/src/lxc/nl.c index fdaf07e66..236cfcb27 100644 --- a/src/lxc/nl.c +++ b/src/lxc/nl.c @@ -155,7 +155,8 @@ again: if (!ret) return 0; - if (msg.msg_flags & MSG_TRUNC) + if (msg.msg_flags & MSG_TRUNC && + ret == answer->nlmsghdr.nlmsg_len) return -EMSGSIZE; return ret; @@ -182,9 +183,8 @@ extern int netlink_send(struct nl_handler *handler, struct nlmsg *nlmsg) nladdr.nl_groups = 0; ret = sendmsg(handler->fd, &msg, 0); - if (ret < 0) { + if (ret < 0) return -errno; - } return ret; } @@ -209,7 +209,7 @@ extern int netlink_transaction(struct nl_handler *handler, struct nlmsgerr *err = (struct nlmsgerr*)NLMSG_DATA(answer); return err->error; } - + return 0; } -- 2.47.2