mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 23:07:44 +00:00
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.
This commit is contained in:
parent
65e97240e6
commit
09fafa1e21
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user