]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Return a virArpTablePtr when the nlmsghdr for loop is over
authorLin Ma <lma@suse.com>
Thu, 13 Sep 2018 07:54:24 +0000 (15:54 +0800)
committerJohn Ferlan <jferlan@redhat.com>
Fri, 14 Sep 2018 15:18:28 +0000 (11:18 -0400)
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 <lma@suse.com>
Reviewed-by: Chen Hanxiao <chenhanxiao@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/util/virarptable.c

index 04a6f35571fb19a1e72fcb1b9fb3b84d0870dfe3..217a960d5a3dd9113921600cc8081e1c0f55477f 100644 (file)
@@ -152,6 +152,8 @@ virArpTableGet(void)
         }
     }
 
+    return table;
+
  cleanup:
     virArpTableFree(table);
     return NULL;