sd-rtnl: socet_read_message - make sure we only shrink the partial rqueue when processing multi-part message

This commit is contained in:
Tom Gundersen 2014-04-19 20:32:01 +02:00
parent 6916ec29af
commit d4ef4f46cf

View 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