Compare commits

..
10 changed files with 223 additions and 876 deletions
+24 -14
View File
@@ -1,14 +1,24 @@
.build*.log
*.rpm
i686
x86_64
libvirt-*.tar.gz
libvirt-0.6.0.tar.gz
libvirt-0.6.1.tar.gz
libvirt-0.6.2.tar.gz
libvirt-0.6.3.tar.gz
libvirt-0.6.4.tar.gz
libvirt-0.6.5.tar.gz
libvirt-0.7.0-0.1.gitf055724.tar.gz
libvirt-0.7.0-0.6.gite195b43.tar.gz
libvirt-0.7.0.tar.gz
libvirt-0.0.3.tar.gz
libvirt-0.0.4.tar.gz
libvirt-0.0.5.tar.gz
libvirt-0.0.6.tar.gz
libvirt-0.1.0.tar.gz
libvirt-0.1.2.tar.gz
libvirt-0.1.1.tar.gz
libvirt-0.1.3.tar.gz
libvirt-0.1.4.tar.gz
libvirt-0.1.5.tar.gz
libvirt-0.1.6.tar.gz
libvirt-0.1.7.tar.gz
libvirt-0.1.8.tar.gz
libvirt-0.1.9.tar.gz
libvirt-0.1.10.tar.gz
libvirt-0.1.11.tar.gz
libvirt-0.2.0.tar.gz
libvirt-0.2.1.tar.gz
libvirt-0.2.2.tar.gz
libvirt-0.2.3.tar.gz
libvirt-0.3.0.tar.gz
libvirt-0.3.1.tar.gz
libvirt-0.3.2.tar.gz
libvirt-0.3.3.tar.gz
+1
View File
@@ -0,0 +1 @@
F-8
+48
View File
@@ -0,0 +1,48 @@
diff -rup libvirt-0.4.1.orig/qemud/qemud.c libvirt-0.4.1.new/qemud/qemud.c
--- libvirt-0.4.1.orig/qemud/qemud.c 2008-03-10 17:31:09.000000000 -0400
+++ libvirt-0.4.1.new/qemud/qemud.c 2008-03-10 17:31:36.000000000 -0400
@@ -393,7 +393,7 @@ static int qemudGoDaemon(void) {
case -1:
return -1;
default:
- return nextpid;
+ _exit(0);
}
cleanup:
@@ -418,8 +418,7 @@ static int qemudGoDaemon(void) {
status != 0) {
return -1;
}
-
- return pid;
+ _exit(0);
}
}
}
@@ -2116,16 +2115,12 @@ int main(int argc, char **argv) {
goto error1;
if (godaemon) {
- int pid;
openlog("libvirtd", 0, 0);
- pid = qemudGoDaemon();
- if (pid < 0) {
+ if (qemudGoDaemon() < 0) {
qemudLog(QEMUD_ERR, _("Failed to fork as daemon: %s"),
strerror(errno));
goto error1;
}
- if (pid > 0)
- goto out;
/* Choose the name of the PID file. */
if (!pid_file) {
@@ -2172,7 +2167,6 @@ int main(int argc, char **argv) {
if (godaemon)
closelog();
- out:
ret = 0;
error2:
+38
View File
@@ -0,0 +1,38 @@
Avoid segfault upon early libvirtd failure.
* qemud/qemud.c (main): Don't call qemudCleanup on an
uninitialized pointer.
By the way, even though this evoked a warning from gcc,
"make distcheck" passes. Obviously, that means the distcheck
rule is inadequate. I'll fix it so that it turns on -Werror
for the final build.
Signed-off-by: Jim Meyering <meyering@redhat.com>
---
qemud/qemud.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/qemud/qemud.c b/qemud/qemud.c
index 96fdf32..b6b82ed 100644
--- a/qemud/qemud.c
+++ b/qemud/qemud.c
@@ -2025,7 +2025,7 @@ libvirt management daemon:\n\
#define MAX_LISTEN 5
int main(int argc, char **argv) {
- struct qemud_server *server;
+ struct qemud_server *server = NULL;
struct sigaction sig_action;
int sigpipe[2];
const char *pid_file = NULL;
@@ -2180,7 +2180,8 @@ int main(int argc, char **argv) {
unlink (pid_file);
error1:
- qemudCleanup(server);
+ if (server)
+ qemudCleanup(server);
return ret;
}
+23
View File
@@ -0,0 +1,23 @@
Don't use first byte of string as a pointer.
* src/qemu_conf.c (qemudReportError): Use the pointer, errorMessage,
not its first byte, errorMessage[0].
Signed-off-by: Jim Meyering <meyering@redhat.com>
---
src/qemu_conf.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/qemu_conf.c b/src/qemu_conf.c
index eead0bc..e54da5b 100644
--- a/src/qemu_conf.c
+++ b/src/qemu_conf.c
@@ -68,7 +68,7 @@ void qemudReportError(virConnectPtr conn,
errorMessage[0] = '\0';
}
- virerr = __virErrorMsg(code, (errorMessage[0] ? errorMessage[0] : NULL));
+ virerr = __virErrorMsg(code, (errorMessage[0] ? errorMessage : NULL));
__virRaiseError(conn, dom, net, VIR_FROM_QEMU, code, VIR_ERR_ERROR,
virerr, errorMessage, NULL, -1, -1, virerr, errorMessage);
}
-33
View File
@@ -1,33 +0,0 @@
--- src/qemu_conf.c.orig 2009-05-29 19:24:59.000000000 +0200
+++ src/qemu_conf.c 2009-05-29 19:19:39.000000000 +0200
@@ -792,6 +792,20 @@ int qemudBuildCommandLine(virConnectPtr
char uuid[VIR_UUID_STRING_BUFLEN];
char domid[50];
const char *cpu = NULL;
+ int skipSound = 0;
+
+ if (driver->securityDriver &&
+ driver->securityDriver->name &&
+ STREQ(driver->securityDriver->name, "selinux") &&
+ getuid() == 0) {
+ static int soundWarned = 0;
+ skipSound = 1;
+ if (def->nsounds &&
+ !soundWarned) {
+ soundWarned = 1;
+ VIR_WARN0("Sound cards for VMs are disabled while SELinux security model is active");
+ }
+ }
uname_normalize(&ut);
@@ -1429,7 +1443,8 @@ int qemudBuildCommandLine(virConnectPtr
}
/* Add sound hardware */
- if (def->nsounds) {
+ if (def->nsounds &&
+ !skipSound) {
int size = 100;
char *modstr;
if (VIR_ALLOC_N(modstr, size+1) < 0)
@@ -1,73 +0,0 @@
From: Mark McLoughlin <markmc@redhat.com>
Subject: [PATCH] chown kernel/initrd before spawning qemu
If we're running qemu unprivileged, we need to chown any supplied kernel
or initrd before spawning it.
* src/qemu_driver.c: rename qemuDomainSetDiskOwnership() to
qemuDomainSetFileOwnership(), pass it a path string instead of a disk
definition and use it for chowning the kernel/initrd in
qemuDomainSetAllDeviceOwnership()
---
src/qemu_driver.c | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index 412b68d..bd58435 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -1684,18 +1684,18 @@ static int qemuDomainSetHostdevOwnership(virConnectPtr conn,
}
-static int qemuDomainSetDiskOwnership(virConnectPtr conn,
- virDomainDiskDefPtr def,
+static int qemuDomainSetFileOwnership(virConnectPtr conn,
+ const char *path,
uid_t uid, gid_t gid)
{
- if (!def->src)
+ if (!path)
return 0;
- VIR_DEBUG("Setting ownership on %s to %d:%d", def->src, uid, gid);
- if (chown(def->src, uid, gid) < 0) {
+ VIR_DEBUG("Setting ownership on %s to %d:%d", path, uid, gid);
+ if (chown(path, uid, gid) < 0) {
virReportSystemError(conn, errno, _("cannot set ownership on %s"),
- def->src);
+ path);
return -1;
}
return 0;
@@ -1725,7 +1725,7 @@ static int qemuDomainSetDeviceOwnership(virConnectPtr conn,
(def->data.disk->readonly || def->data.disk->shared))
return 0;
- return qemuDomainSetDiskOwnership(conn, def->data.disk, uid, gid);
+ return qemuDomainSetFileOwnership(conn, def->data.disk->src, uid, gid);
case VIR_DOMAIN_DEVICE_HOSTDEV:
return qemuDomainSetHostdevOwnership(conn, def->data.hostdev, uid, gid);
@@ -1753,12 +1753,16 @@ static int qemuDomainSetAllDeviceOwnership(virConnectPtr conn,
uid = restore ? 0 : driver->user;
gid = restore ? 0 : driver->group;
+ if (qemuDomainSetFileOwnership(conn, def->os.kernel, uid, gid) < 0 ||
+ qemuDomainSetFileOwnership(conn, def->os.initrd, uid, gid) < 0)
+ return -1;
+
for (i = 0 ; i < def->ndisks ; i++) {
if (restore &&
(def->disks[i]->readonly || def->disks[i]->shared))
continue;
- if (qemuDomainSetDiskOwnership(conn, def->disks[i], uid, gid) < 0)
+ if (qemuDomainSetFileOwnership(conn, def->disks[i]->src, uid, gid) < 0)
return -1;
}
--
1.6.2.5
@@ -1,39 +0,0 @@
From: Mark McLoughlin <markmc@redhat.com>
Subject: [PATCH] Handle kernels with no ipv6 support
If the ipv6 kernel module is not loaded, then we get this when starting
a virtual network:
libvir: Network Config error :
cannot enable /proc/sys/net/ipv6/conf/virbr0/disable_ipv6:
No such file or directory
If disable_ipv6 is not present, we should just merrily continue on our
way.
* src/network_driver.c: make networkDisableIPV6() not fail if the kernel
has no ipv6 support
---
src/network_driver.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/network_driver.c b/src/network_driver.c
index eaea454..84910ab 100644
--- a/src/network_driver.c
+++ b/src/network_driver.c
@@ -801,6 +801,12 @@ static int networkDisableIPV6(virConnectPtr conn,
goto cleanup;
}
+ if (access(field, W_OK) < 0 && errno == ENOENT) {
+ VIR_DEBUG("ipv6 appears to already be disabled on %s", network->def->bridge);
+ ret = 0;
+ goto cleanup;
+ }
+
if (virFileWriteStr(field, "1") < 0) {
virReportSystemError(conn, errno,
_("cannot enable %s"), field);
--
1.6.2.5
+88 -716
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
8c2c14a7695c9c661004bcfc6468d62d libvirt-0.7.0.tar.gz
4dfe45869f082393cfd09f4690454c12 libvirt-0.4.1.tar.gz