diff --git a/ChangeLog b/ChangeLog index 3aeccc14f2c2d77449032daec4cd3ec33302d8ba..5eb3135a4df114304bd9f10fe6af64aff7811c69 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 d37753b1ee7fd43910eb6af79abc2fcab27856e9..4347f0f8dea564f969db2f9c64673972509a8aea 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);