From 438a97630fc20f40725273d485396b52e548ed74 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Mon, 8 Dec 2014 18:36:16 +0100 Subject: [PATCH] sd-rtnl: fix bogus warning about dropping 20 bytes from multi-part messages Nothing was being dropped, we just failed to account for the NLMSG_DONE. (cherry picked from commit 0e707326fcecd3968efa7dc827123032f1b2cb61) --- src/libsystemd/sd-rtnl/rtnl-message.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c index b501a52cf..725bedb83 100644 --- a/src/libsystemd/sd-rtnl/rtnl-message.c +++ b/src/libsystemd/sd-rtnl/rtnl-message.c @@ -1222,7 +1222,7 @@ int socket_read_message(sd_rtnl *rtnl) { } } - for (new_msg = rtnl->rbuffer; NLMSG_OK(new_msg, len); new_msg = NLMSG_NEXT(new_msg, len)) { + for (new_msg = rtnl->rbuffer; NLMSG_OK(new_msg, len) && !done; new_msg = NLMSG_NEXT(new_msg, len)) { _cleanup_rtnl_message_unref_ sd_rtnl_message *m = NULL; const NLType *nl_type; @@ -1237,7 +1237,8 @@ int socket_read_message(sd_rtnl *rtnl) { if (new_msg->nlmsg_type == NLMSG_DONE) { /* finished reading multi-part message */ done = true; - break; + + continue; } /* check that we support this message type */