[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] add missing libxl__free_all() calls
# HG changeset patch # User Juergen Gross <juergen.gross@xxxxxxxxxxxxxx> # Date 1291902656 -3600 # Node ID ab785e37499c8cdadd1fd5e4ab1bfbbacebf358b # Parent f57026cd5d1945b5d7bff3bcfd44e3866913fe45 add missing libxl__free_all() calls In various libxl functions libxl__free_all() was missing before return Signed-off-by: juergen.gross@xxxxxxxxxxxxxx Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> committer: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> --- tools/libxl/libxl.c | 26 ++++++++++++++++++++++---- tools/libxl/libxl_dom.c | 13 ++++++++++--- tools/libxl/libxl_pci.c | 4 +++- 3 files changed, 35 insertions(+), 8 deletions(-) diff -r f57026cd5d19 -r ab785e37499c tools/libxl/libxl.c --- a/tools/libxl/libxl.c Mon Dec 13 17:59:45 2010 +0000 +++ b/tools/libxl/libxl.c Thu Dec 09 14:50:56 2010 +0100 @@ -514,7 +514,10 @@ int libxl_domain_preserve(libxl_ctx *ctx xs_write(ctx->xsh, t, libxl__sprintf(&gc, "%s/vm", dom_path), vm_path, strlen(vm_path)); rc = libxl_domain_rename(ctx, domid, info->name, preserved_name, t); - if (rc) return rc; + if (rc) { + libxl__free_all(&gc); + return rc; + } xs_write(ctx->xsh, t, libxl__sprintf(&gc, "%s/uuid", vm_path), uuid_string, strlen(uuid_string)); @@ -756,17 +759,20 @@ int libxl_domain_shutdown(libxl_ctx *ctx ret = xc_get_hvm_param(ctx->xch, domid, HVM_PARAM_ACPI_S_STATE, &acpi_s_state); if (ret<0) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting ACPI S-state"); + libxl__free_all(&gc); return ERROR_FAIL; } ret = xc_get_hvm_param(ctx->xch, domid, HVM_PARAM_CALLBACK_IRQ, &pvdriver); if (ret<0) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting HVM callback IRQ"); + libxl__free_all(&gc); return ERROR_FAIL; } if (!pvdriver || acpi_s_state != 0) { ret = xc_domain_shutdown(ctx->xch, domid, req); if (ret<0) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "unpausing domain"); + libxl__free_all(&gc); return ERROR_FAIL; } } @@ -3677,13 +3683,16 @@ int libxl_create_cpupool(libxl_ctx *ctx, char *uuid_string; uuid_string = libxl__uuid2string(&gc, *uuid); - if (!uuid_string) + if (!uuid_string) { + libxl__free_all(&gc); return ERROR_NOMEM; + } rc = xc_cpupool_create(ctx->xch, poolid, schedid); if (rc) { LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "Could not create cpupool"); + libxl__free_all(&gc); return ERROR_FAIL; } @@ -3694,6 +3703,7 @@ int libxl_create_cpupool(libxl_ctx *ctx, LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "Error moving cpu to cpupool"); libxl_destroy_cpupool(ctx, *poolid); + libxl__free_all(&gc); return ERROR_FAIL; } } @@ -3709,8 +3719,10 @@ int libxl_create_cpupool(libxl_ctx *ctx, libxl__sprintf(&gc, "/local/pool/%d/name", *poolid), "%s", name); - if (xs_transaction_end(ctx->xsh, t, 0) || (errno != EAGAIN)) + if (xs_transaction_end(ctx->xsh, t, 0) || (errno != EAGAIN)) { + libxl__free_all(&gc); return 0; + } } } @@ -3723,8 +3735,10 @@ int libxl_destroy_cpupool(libxl_ctx *ctx libxl_cpumap cpumap; info = xc_cpupool_getinfo(ctx->xch, poolid); - if (info == NULL) + if (info == NULL) { + libxl__free_all(&gc); return ERROR_NOMEM; + } rc = ERROR_INVAL; if ((info->cpupool_id != poolid) || (info->n_dom)) @@ -3768,6 +3782,7 @@ out1: libxl_cpumap_destroy(&cpumap); out: xc_cpupool_infofree(ctx->xch, info); + libxl__free_all(&gc); return rc; } @@ -3809,6 +3824,7 @@ int libxl_cpupool_movedomain(libxl_ctx * dom_path = libxl__xs_get_dompath(&gc, domid); if (!dom_path) { + libxl__free_all(&gc); return ERROR_FAIL; } @@ -3816,6 +3832,7 @@ int libxl_cpupool_movedomain(libxl_ctx * if (rc) { LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "Error moving domain to cpupool"); + libxl__free_all(&gc); return ERROR_FAIL; } @@ -3834,5 +3851,6 @@ int libxl_cpupool_movedomain(libxl_ctx * break; } + libxl__free_all(&gc); return 0; } diff -r f57026cd5d19 -r ab785e37499c tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Mon Dec 13 17:59:45 2010 +0000 +++ b/tools/libxl/libxl_dom.c Thu Dec 09 14:50:56 2010 +0100 @@ -121,8 +121,10 @@ int libxl__build_post(libxl_ctx *ctx, ui } dom_path = libxl__xs_get_dompath(&gc, domid); - if (!dom_path) + if (!dom_path) { + libxl__free_all(&gc); return ERROR_FAIL; + } vm_path = xs_read(ctx->xsh, XBT_NULL, libxl__sprintf(&gc, "%s/vm", dom_path), NULL); retry_transaction: @@ -469,6 +471,7 @@ int libxl__domain_save_device_model(libx if (stat(filename, &st) < 0) { LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "Unable to stat qemu save file\n"); + libxl__free_all(&gc); return ERROR_FAIL; } @@ -477,13 +480,17 @@ int libxl__domain_save_device_model(libx c = libxl_write_exactly(ctx, fd, QEMU_SIGNATURE, strlen(QEMU_SIGNATURE), "saved-state file", "qemu signature"); - if (c) + if (c) { + libxl__free_all(&gc); return c; + } c = libxl_write_exactly(ctx, fd, &qemu_state_len, sizeof(qemu_state_len), "saved-state file", "saved-state length"); - if (c) + if (c) { + libxl__free_all(&gc); return c; + } fd2 = open(filename, O_RDONLY); while ((c = read(fd2, buf, sizeof(buf))) != 0) { diff -r f57026cd5d19 -r ab785e37499c tools/libxl/libxl_pci.c --- a/tools/libxl/libxl_pci.c Mon Dec 13 17:59:45 2010 +0000 +++ b/tools/libxl/libxl_pci.c Thu Dec 09 14:50:56 2010 +0100 @@ -525,8 +525,10 @@ int libxl_device_pci_list_assignable(lib *list = NULL; rc = get_all_assigned_devices(&gc, &assigned, &num_assigned); - if ( rc ) + if ( rc ) { + libxl__free_all(&gc); return rc; + } dir = opendir(SYSFS_PCIBACK_DRIVER); if ( NULL == dir ) { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |