From 9ebf278d68a912b6cd6eed3c215c4e1e19ac295c Mon Sep 17 00:00:00 2001 From: "vhanquez@kneesa.uk.xensource.com" Date: Tue, 24 Jan 2006 13:14:42 +0000 Subject: [PATCH] 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 --- tools/xenstore/xenstored_domain.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c index 353ef9b7ac..cf862e4b8b 100644 --- a/tools/xenstore/xenstored_domain.c +++ b/tools/xenstore/xenstored_domain.c @@ -468,28 +468,38 @@ static int dom0_init(void) 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; } -- 2.30.2