mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 23:25:24 +00:00
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:
parent
f272378d52
commit
fe7cb869a8
@ -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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user