File xs-07-do_mkdir-error.patch of Package xen.4506
commit 7d87d31d33ff7c746290886978d172dcab74369d
Author: Wei Liu <wei.liu2@citrix.com>
Date: Wed Jul 20 15:13:41 2016 +0100
xenstore: send error earlier in do_mkdir
XenServer's coverity instance complains that a few lines below
create_node dereferences NULL if name == NULL. It however fails to
figure out that if node is NULL, errno won't be ENOENT, so do_mkdir
should have bailed before create_node.
That said, it would be good if we don't need to go through the hops. We
can bail earlier if name is NULL.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c
index ffc0634..5b2a49b 100644
--- a/tools/xenstore/xenstored_core.c
+++ b/tools/xenstore/xenstored_core.c
@@ -981,6 +981,12 @@ static void do_mkdir(struct connection *conn, struct buffered_data *in)
struct node *node;
const char *name = onearg(in);
+ if (!name) {
+ errno = EINVAL;
+ send_error(conn, errno);
+ return;
+ }
+
name = canonicalize(conn, name);
node = get_node(conn, in, name, XS_PERM_WRITE);