qemu: Check driver is initialized up front, to avoid segfault.

If the qemu_driver was not initialized (possibly due to an error on driver
startup), we can segfault if attempting to connect to the URI.
This commit is contained in:
Cole Robinson 2009-07-08 17:59:22 -04:00
parent f272378d52
commit fe7cb869a8

View File

@ -1867,6 +1867,12 @@ static virDrvOpenStatus qemudOpen(virConnectPtr conn,
if (conn->uri->server != NULL) if (conn->uri->server != NULL)
return VIR_DRV_OPEN_DECLINED; return VIR_DRV_OPEN_DECLINED;
if (qemu_driver == NULL) {
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, "%s",
_("qemu state driver is not active"));
return VIR_DRV_OPEN_ERROR;
}
if (qemu_driver->privileged) { if (qemu_driver->privileged) {
if (STRNEQ (conn->uri->path, "/system") && if (STRNEQ (conn->uri->path, "/system") &&
STRNEQ (conn->uri->path, "/session")) { STRNEQ (conn->uri->path, "/session")) {
@ -1883,14 +1889,6 @@ static virDrvOpenStatus qemudOpen(virConnectPtr conn,
return VIR_DRV_OPEN_ERROR; return VIR_DRV_OPEN_ERROR;
} }
} }
/* URI was good, but driver isn't active */
if (qemu_driver == NULL) {
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR, "%s",
_("qemu state driver is not active"));
return VIR_DRV_OPEN_ERROR;
}
} }
conn->privateData = qemu_driver; conn->privateData = qemu_driver;