From 317e3b28656d0685ca88667e52b81df44799ae8c Mon Sep 17 00:00:00 2001 From: Lin Ma Date: Thu, 13 Sep 2018 15:54:24 +0800 Subject: [PATCH] util: Return a virArpTablePtr when the nlmsghdr for loop is over commit b00c9c39 removed the label end_of_netlink_messages and 'return table' statement, It causes the function virArpTableGet doesn't return a proper virArpTable pointer. How to reproduce: # virsh domiflist sles12sp3 Interface Type Source Model MAC ------------------------------------------------------- vnet0 network default virtio 52:54:00:cd:02:e6 # virsh domifaddr sles12sp3 --source arp error: Failed to query for interfaces addresses error: An error occurred, but the cause is unknown It seems that the "if (nh->nlmsg_type == NLMSG_DONE)" statement won't be meted. So this patch adds 'return table' when the iterations of nlmsghdr for loop is over. Signed-off-by: Lin Ma Reviewed-by: Chen Hanxiao Reviewed-by: John Ferlan --- src/util/virarptable.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util/virarptable.c b/src/util/virarptable.c index 04a6f35571..217a960d5a 100644 --- a/src/util/virarptable.c +++ b/src/util/virarptable.c @@ -152,6 +152,8 @@ virArpTableGet(void) } } + return table; + cleanup: virArpTableFree(table); return NULL;