chiark / gitweb /
sd-rtnl: socet_read_message - make sure we only shrink the partial rqueue when proces...
authorTom Gundersen <teg@jklm.no>
Sat, 19 Apr 2014 18:32:01 +0000 (20:32 +0200)
committerTom Gundersen <teg@jklm.no>
Sat, 19 Apr 2014 18:32:01 +0000 (20:32 +0200)
src/libsystemd/sd-rtnl/rtnl-message.c

index 3362958f360a11309672e961d93636723a822979..a5b09eddad79162f3db59f674d860062d321d52b 100644 (file)
@@ -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