WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] add missing libxl__free_all() calls

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] add missing libxl__free_all() calls
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 23 Dec 2010 05:34:01 -0800
Delivery-date: Thu, 23 Dec 2010 05:39:03 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] add missing libxl__free_all() calls, Xen patchbot-unstable <=