aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_misc.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-01-22 10:59:51 +0000
committerKeir Fraser <keir.fraser@citrix.com>2010-01-22 10:59:51 +0000
commit7848a26a9729479720edfcee8c6bd816eb11ac41 (patch)
tree3e84286123405ec5b960d42950974fc7a3545837 /tools/libxc/xc_misc.c
parentd6aaa9ee0f8ba5d2d8ff1187b05ed9becee0b40c (diff)
downloadxen-7848a26a9729479720edfcee8c6bd816eb11ac41.tar.gz
xen-7848a26a9729479720edfcee8c6bd816eb11ac41.tar.bz2
xen-7848a26a9729479720edfcee8c6bd816eb11ac41.zip
libxc: mmapbatch-v2 adjustments
Just like the kernel, the fallback implementation of xc_map_foreign_bulk() should clear the error indication array upon success. Also, a few allocations were needlessly using calloc() instead of malloc(). Finally, in xc_domain_save() allocate the error indicator array once (along with the other arrays) instead of using realloc() (without error checking) in the loop body. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'tools/libxc/xc_misc.c')
-rw-r--r--tools/libxc/xc_misc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/libxc/xc_misc.c b/tools/libxc/xc_misc.c
index 44039b03be..04da3d2a3f 100644
--- a/tools/libxc/xc_misc.c
+++ b/tools/libxc/xc_misc.c
@@ -360,7 +360,7 @@ void *xc_map_foreign_pages(int xc_handle, uint32_t dom, int prot,
return NULL;
}
- err = calloc(num, sizeof(*err));
+ err = malloc(num * sizeof(*err));
if (!err)
return NULL;
@@ -397,7 +397,7 @@ xc_map_foreign_bulk(int xc_handle, uint32_t dom, int prot,
return NULL;
}
- pfn = calloc(num, sizeof(*pfn));
+ pfn = malloc(num * sizeof(*pfn));
if (!pfn) {
errno = ENOMEM;
return NULL;
@@ -416,7 +416,8 @@ xc_map_foreign_bulk(int xc_handle, uint32_t dom, int prot,
err[i] = -EINVAL;
break;
}
- }
+ } else
+ memset(err, 0, num * sizeof(*err));
free(pfn);