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.
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
src/qemu_driver.c | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index 95ea882..a9b4850 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -1779,6 +1779,12 @@ static virDrvOpenStatus qemudOpen(virConnectPtr conn,
if (conn->uri->server != NULL)
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 (STRNEQ (conn->uri->path, "/system") &&
STRNEQ (conn->uri->path, "/session")) {
@@ -1795,14 +1801,6 @@ static virDrvOpenStatus qemudOpen(virConnectPtr conn,
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;
--
1.6.0.6