From: "Daniel P. Berrange" <berrange(a)redhat.com>
The xenParseXM sets def->nconsoles to 1 before claling
VIR_REALLOC_N on def->consoles. So if the alloc fails
due to OOM, the cleanup code will crash accessing a
console that does not exist.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/xenxs/xen_xm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c
index 4386fef..1652fff 100644
--- a/src/xenxs/xen_xm.c
+++ b/src/xenxs/xen_xm.c
@@ -1112,9 +1112,9 @@ xenParseXM(virConfPtr conf, int xendConfigVersion,
}
}
} else {
- def->nconsoles = 1;
if (VIR_ALLOC_N(def->consoles, 1) < 0)
goto cleanup;
+ def->nconsoles = 1;
if (!(def->consoles[0] = xenParseSxprChar("pty", NULL)))
goto cleanup;
def->consoles[0]->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
--
1.8.3.1