[libvirt] [PATCH] Fix crashing upgrading from older libvirts with running guests

Daniel P. Berrange berrange at redhat.com
Fri Aug 2 11:51:37 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

If upgrading from a libvirt that is older than 1.0.5, we can
not assume that vm->def->resource is non-NULL. This bogus
assumption caused libvirtd to crash

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 src/lxc/lxc_process.c  | 8 ++++++--
 src/qemu/qemu_cgroup.c | 4 +++-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
index 0a28305..4835bd5 100644
--- a/src/lxc/lxc_process.c
+++ b/src/lxc/lxc_process.c
@@ -1204,7 +1204,9 @@ int virLXCProcessStart(virConnectPtr conn,
     }
 
     if (virCgroupNewDetectMachine(vm->def->name, "lxc", vm->pid,
-                                  vm->def->resource->partition,
+                                  vm->def->resource ?
+                                  vm->def->resource->partition :
+                                  NULL,
                                   -1, &priv->cgroup) < 0)
         goto error;
 
@@ -1413,7 +1415,9 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm,
             goto error;
 
         if (virCgroupNewDetectMachine(vm->def->name, "lxc", vm->pid,
-                                      vm->def->resource->partition,
+                                      vm->def->resource ?
+                                      vm->def->resource->partition :
+                                      NULL,
                                       -1, &priv->cgroup) < 0)
             goto error;
 
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 787ddeb..dc949db 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -707,7 +707,9 @@ qemuConnectCgroup(virQEMUDriverPtr driver,
     if (virCgroupNewDetectMachine(vm->def->name,
                                   "qemu",
                                   vm->pid,
-                                  vm->def->resource->partition,
+                                  vm->def->resource ?
+                                  vm->def->resource->partition :
+                                  NULL,
                                   cfg->cgroupControllers,
                                   &priv->cgroup) < 0)
         goto cleanup;
-- 
1.8.1.4




More information about the libvir-list mailing list