diff options
-rw-r--r-- | src/libsystemd/sd-rtnl/rtnl-message.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c index 3362958f36..a5b09eddad 100644 --- a/src/libsystemd/sd-rtnl/rtnl-message.c +++ b/src/libsystemd/sd-rtnl/rtnl-message.c @@ -1226,16 +1226,16 @@ int socket_read_message(sd_rtnl *rtnl) { if (r < 0) return r; - if (i < rtnl->rqueue_partial_size) { + rtnl->rqueue[rtnl->rqueue_size ++] = first; + first = NULL; + + if (multi_part && (i < rtnl->rqueue_partial_size)) { /* remove the message form the partial read queue */ memmove(rtnl->rqueue_partial + i,rtnl->rqueue_partial + i + 1, sizeof(sd_rtnl_message*) * (rtnl->rqueue_partial_size - i - 1)); rtnl->rqueue_partial_size --; } - rtnl->rqueue[rtnl->rqueue_size ++] = first; - first = NULL; - return 1; } else { /* we only got a partial multi-part message, push it on the |