[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [qemu-xen-unstable] qemu xen upstream synch (Gerd): [PATCH 4/7]: no malloc failure checks.



commit faa3347e6e7bc4137569342a191639ee8dd5d410
Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date:   Tue May 19 15:40:06 2009 +0100

    qemu xen upstream synch (Gerd): [PATCH 4/7]: no malloc failure checks.
    
    qemu_malloc() will never return errors.  It will abort instead.
    Thus no checks for failure are needed.
    
    [This is] a series of patches for qemu-xen, making the code identical
    to the xen support patches being submitted to upstream qemu.  The review
    process on qemu-devel resulted in a number of fixes and cleanups in the
    backend code, this is where most of the changes come from.
    
    There are also some xenfb changes due to displaystate reorganization and
    xenfb being merged in steps due to that.
    
    Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
---
 hw/xen_backend.c |   14 ++++++++++----
 hw/xenfb.c       |    2 --
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/hw/xen_backend.c b/hw/xen_backend.c
index 56b001f..bb02634 100644
--- a/hw/xen_backend.c
+++ b/hw/xen_backend.c
@@ -67,9 +67,17 @@ char *xenstore_read_str(const char *base, const char *node)
 {
     char abspath[XEN_BUFSIZE];
     unsigned int len;
+    char *str, *ret = NULL;
 
     snprintf(abspath, sizeof(abspath), "%s/%s", base, node);
-    return xs_read(xenstore, 0, abspath, &len);
+    str = xs_read(xenstore, 0, abspath, &len);
+    if (str != NULL) {
+        /* move to qemu-allocated memory to make sure
+         * callers can savely qemu_free() stuff. */
+        ret = qemu_strdup(str);
+        free(str);
+    }
+    return ret;
 }
 
 int xenstore_write_int(const char *base, const char *node, int ival)
@@ -184,8 +192,6 @@ static struct XenDevice *xen_be_get_xendev(const char 
*type, int dom, int dev,
 
     /* init new xendev */
     xendev = qemu_mallocz(ops->size);
-    if (!xendev)
-        return NULL;
     xendev->type  = type;
     xendev->dom   = dom;
     xendev->dev   = dev;
@@ -519,7 +525,7 @@ static int xenstore_scan(const char *type, int dom, struct 
XenDevOps *ops)
            continue;
        xen_be_check_state(xendev);
     }
-    qemu_free(dev);
+    free(dev);
     return 0;
 }
 
diff --git a/hw/xenfb.c b/hw/xenfb.c
index 8336c82..1764ac2 100644
--- a/hw/xenfb.c
+++ b/hw/xenfb.c
@@ -483,8 +483,6 @@ static int xenfb_map_fb(struct XenFB *xenfb)
 
     pgmfns = qemu_mallocz(sizeof(unsigned long) * n_fbdirs);
     fbmfns = qemu_mallocz(sizeof(unsigned long) * xenfb->fbpages);
-    if (!pgmfns || !fbmfns)
-       goto out;
 
     xenfb_copy_mfns(mode, n_fbdirs, pgmfns, pd);
     map = xc_map_foreign_pages(xen_xc, xenfb->c.xendev.dom,
--
generated by git-patchbot for /home/xen/git/qemu-xen-unstable.git

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.