From: vhanquez@kneesa.uk.xensource.com Date: Tue, 24 Jan 2006 13:14:42 +0000 (+0000) Subject: add some checking of opening and read in dom0_init and return -1 if error. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16541^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9ebf278d68a912b6cd6eed3c215c4e1e19ac295c;p=xen.git 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 --- 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; }