# HG changeset patch
# User vhanquez@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID c0a8a0b64f65a38385028be277b9b2bbfcef65fc
# Parent 068857a7133dbd8688502e71d45e83b13c0b8c8c
add some checking of opening and read in dom0_init and return -1 if error.
instead of crashing, it now prints a more meaningful error message.
Signed-off-by: Vincent Hanquez <vincent@xxxxxxxxxxxxx>
diff -r 068857a7133d -r c0a8a0b64f65 tools/xenstore/xenstored_domain.c
--- a/tools/xenstore/xenstored_domain.c Tue Jan 24 12:06:48 2006
+++ b/tools/xenstore/xenstored_domain.c Tue Jan 24 13:14:42 2006
@@ -468,28 +468,38 @@
struct domain *dom0;
fd = open(XENSTORED_PROC_MFN, O_RDONLY);
+ if (fd == -1)
+ return -1;
rc = read(fd, str, sizeof(str));
+ if (rc == -1)
+ goto outfd;
str[rc] = '\0';
mfn = strtoul(str, NULL, 0);
close(fd);
fd = open(XENSTORED_PROC_PORT, O_RDONLY);
+ if (fd == -1)
+ return -1;
rc = read(fd, str, sizeof(str));
+ if (rc == -1)
+ goto outfd;
str[rc] = '\0';
port = strtoul(str, NULL, 0);
close(fd);
-
dom0 = new_domain(NULL, 0, mfn, port);
talloc_steal(dom0->conn, dom0);
evtchn_notify(dom0->port);
return 0;
+outfd:
+ close(fd);
+ return -1;
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|