Re: [PATCH iproute2 1/2] libnetlink: Process further iovs on no error

2018-12-04 Thread Stephen Hemminger
On Tue, 4 Dec 2018 16:07:41 +
Petr Machata  wrote:

> When no error is reported in the first iov, do not prematurely return,
> but process further iovs. This fixes batch processing.
> 
> Fixes: c60389e4f9ea ("libnetlink: fix leak and using unused memory on error")
> Signed-off-by: Petr Machata 
> ---

Applied, thanks.



[PATCH iproute2 1/2] libnetlink: Process further iovs on no error

2018-12-04 Thread Petr Machata
When no error is reported in the first iov, do not prematurely return,
but process further iovs. This fixes batch processing.

Fixes: c60389e4f9ea ("libnetlink: fix leak and using unused memory on error")
Signed-off-by: Petr Machata 
---
 lib/libnetlink.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/libnetlink.c b/lib/libnetlink.c
index c0b80ed..9545710 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
@@ -763,6 +763,7 @@ static int __rtnl_talk_iov(struct rtnl_handle *rtnl, struct 
iovec *iov,
msg.msg_iovlen = 1;
i = 0;
while (1) {
+next:
status = rtnl_recvmsg(rtnl->fd, , );
++i;
 
@@ -826,6 +827,8 @@ static int __rtnl_talk_iov(struct rtnl_handle *rtnl, struct 
iovec *iov,
else
free(buf);
 
+   if (i < iovlen)
+   goto next;
return error ? -i : 0;
}
 
-- 
2.4.11