diff options
-rw-r--r-- | tools/libxc/xc_linux_osdep.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c index 377c93867a..5ef5cd63f5 100644 --- a/tools/libxc/xc_linux_osdep.c +++ b/tools/libxc/xc_linux_osdep.c @@ -218,7 +218,7 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h * IOCTL_PRIVCMD_MMAPBATCH_V2 is not supported - fall back to * IOCTL_PRIVCMD_MMAPBATCH. */ - xen_pfn_t *pfn = malloc(num * sizeof(*pfn)); + xen_pfn_t *pfn = alloca(num * sizeof(*pfn)); if ( pfn ) { @@ -264,8 +264,6 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h break; } - free(pfn); - if ( rc == -ENOENT && i == num ) rc = 0; else if ( rc ) @@ -532,7 +530,7 @@ static void *do_gnttab_map_grant_refs(xc_gnttab *xch, xc_osdep_handle h, void *addr = NULL; int i; - map = malloc(sizeof(*map) + + map = alloca(sizeof(*map) + (count - 1) * sizeof(struct ioctl_gntdev_map_grant_ref)); if ( map == NULL ) return NULL; @@ -567,7 +565,6 @@ static void *do_gnttab_map_grant_refs(xc_gnttab *xch, xc_osdep_handle h, } out: - free(map); return addr; } |