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

[Xen-changelog] [xen master] xenstore: add missing checks for allocation failure



commit 670a34bb3e118fd729c39f667550d5d49b0f9118
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Mon Mar 20 09:00:21 2017 +0100
Commit:     Wei Liu <wei.liu2@xxxxxxxxxx>
CommitDate: Wed Mar 22 11:23:14 2017 +0000

    xenstore: add missing checks for allocation failure
    
    Add missing allocation failure checks.
    
    Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 tools/xenstore/xenstored_core.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c
index ed80345..fe11ff2 100644
--- a/tools/xenstore/xenstored_core.c
+++ b/tools/xenstore/xenstored_core.c
@@ -946,6 +946,8 @@ static struct node *construct_node(struct connection *conn, 
const void *ctx,
        base = basename(name);
        baselen = strlen(base) + 1;
        children = talloc_array(ctx, char, parent->childlen + baselen);
+       if (!children)
+               goto nomem;
        memcpy(children, parent->children, parent->childlen);
        memcpy(children + parent->childlen, base, baselen);
        parent->children = children;
@@ -953,13 +955,19 @@ static struct node *construct_node(struct connection 
*conn, const void *ctx,
 
        /* Allocate node */
        node = talloc(ctx, struct node);
+       if (!node)
+               goto nomem;
        node->tdb = tdb_context(conn);
        node->name = talloc_strdup(node, name);
+       if (!node->name)
+               goto nomem;
 
        /* Inherit permissions, except unprivileged domains own what they 
create */
        node->num_perms = parent->num_perms;
        node->perms = talloc_memdup(node, parent->perms,
                                    node->num_perms * sizeof(node->perms[0]));
+       if (!node->perms)
+               goto nomem;
        if (domain_is_unprivileged(conn))
                node->perms[0].id = conn->id;
 
@@ -969,6 +977,10 @@ static struct node *construct_node(struct connection 
*conn, const void *ctx,
        node->parent = parent;
        domain_entry_inc(conn, node);
        return node;
+
+nomem:
+       errno = ENOMEM;
+       return NULL;
 }
 
 static int destroy_node(void *_node)
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

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