libxl: correct allocation size in libxl_list_nics
authorIan Campbell <ian.campbell@citrix.com>
Wed, 28 Sep 2011 15:35:44 +0000 (16:35 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 28 Sep 2011 15:35:44 +0000 (16:35 +0100)
The function returns a list of libxl_nicinfo not libxl_device_nic.

Causes memory corruption on free.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl.c

index 3dc7b5be9e248417c6ac2409238ef8fcdaa9b389..ce76cffd7d89c6eb35563a86cfa772e8cc173fa2 100644 (file)
@@ -1296,7 +1296,7 @@ libxl_nicinfo *libxl_list_nics(libxl_ctx *ctx, uint32_t domid, unsigned int *nb)
                            libxl__sprintf(&gc, "%s/device/vif", dompath), &nb_nics);
     if (!l)
         goto err;
-    nics = res = calloc(nb_nics, sizeof (libxl_device_nic));
+    nics = res = calloc(nb_nics, sizeof (libxl_nicinfo));
     if (!res)
         goto err;
     for (*nb = nb_nics; nb_nics > 0; --nb_nics, ++l, ++nics) {