Daniel P. Berrange wrote: > On Sun, Mar 21, 2010 at 08:07:15PM -0600, Jim Fehlig wrote: > > >> commit f034c0bfd7089ba3400b7a44b97540c4a8785e35 >> Author: Jim Fehlig <jfehlig@xxxxxxxxxx> >> Date: Sun Mar 21 19:59:13 2010 -0600 >> >> Avoid libvirtd crash when cgroups is not configured on host >> >> Invoking virDomainSetMemory() on lxc driver results in libvirtd >> segfault when cgroups has not been configured on the host. >> >> Ensure driver->cgroup is non-null before invoking >> virCgroupForDomain(). To prevent similar segfaults in the future, >> ensure driver parameter to virCgroupForDomain() is non-null before >> dereferencing. >> >> diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c >> index aeec593..ba13065 100644 >> --- a/src/lxc/lxc_driver.c >> +++ b/src/lxc/lxc_driver.c >> @@ -625,6 +625,12 @@ static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem) { >> } >> >> if (virDomainObjIsActive(vm)) { >> + if (driver->cgroup == NULL) { >> + lxcError(VIR_ERR_NO_SUPPORT, >> + "%s", _("cgroups must be configured on the host")); >> + goto cleanup; >> + } >> + >> if (virCgroupForDomain(driver->cgroup, vm->def->name, &cgroup, 0) != 0) { >> lxcError(VIR_ERR_INTERNAL_ERROR, >> _("Unable to get cgroup for %s\n"), vm->def->name); >> diff --git a/src/util/cgroup.c b/src/util/cgroup.c >> index 8777781..496d9d3 100644 >> --- a/src/util/cgroup.c >> +++ b/src/util/cgroup.c >> @@ -692,6 +692,9 @@ int virCgroupForDomain(virCgroupPtr driver, >> int rc; >> char *path; >> >> + if (driver == NULL) >> + return -EINVAL; >> + >> if (virAsprintf(&path, "%s/%s", driver->path, name) < 0) >> return -ENOMEM; >> > > ACK > Thanks. Pushed. Jim -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list