From 102c75057a3045025bb882e6eb0a162568e05e2d Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Thu, 8 Mar 2007 15:16:01 +0000 Subject: [PATCH] Fix misc bugs in qemu connection opening --- ChangeLog | 6 ++++++ src/qemu_internal.c | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3aeccc14f2..5eb3135a4d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Mar 8 10:14:24 EST 2007 Daniel P. Berrange + + * src/qemu_internal.c: Fix inverted check on file handle to + avoid opening connection twice. Avoid SEGV if uri->scheme is + NULL. Don't run autostart for system instance. + Thu Mar 8 09:47:24 EST 2007 Daniel P. Berrange * src/libvirt.c: Refactored driver registration to avoid diff --git a/src/qemu_internal.c b/src/qemu_internal.c index d37753b1ee..4347f0f8de 100644 --- a/src/qemu_internal.c +++ b/src/qemu_internal.c @@ -329,6 +329,7 @@ static int qemuProcessRequest(virConnectPtr conn, */ static int qemuOpenConnection(virConnectPtr conn, xmlURIPtr uri, int readonly) { char path[PATH_MAX]; + int autostart = 0; if (uri->server != NULL) { return -1; @@ -358,8 +359,9 @@ static int qemuOpenConnection(virConnectPtr conn, xmlURIPtr uri, int readonly) { if (snprintf(path, sizeof(path), "@%s/.libvirt/qemud-sock", pw->pw_dir) == sizeof(path)) { return -1; } + autostart = 1; } - return qemuOpenClientUNIX(conn, path, 1); + return qemuOpenClientUNIX(conn, path, autostart); } @@ -845,13 +847,13 @@ static int qemuNetworkOpen(virConnectPtr conn, xmlURIPtr uri = NULL; int ret = -1; - if (conn->qemud_fd == -1) + if (conn->qemud_fd != -1) return 0; if (name) uri = xmlParseURI(name); - if (uri && !strcmp(uri->scheme, "qemu")) + if (uri && uri->scheme && !strcmp(uri->scheme, "qemu")) ret = qemuOpen(conn, name, flags); else if (geteuid() == 0) ret = qemuOpen(conn, "qemu:///system", flags); -- GitLab