mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-05 04:41:20 +00:00
lxc_container: Don't call virGetGroupList during exec
Commit75c1256
states that virGetGroupList must not be called between fork and exec, then commitee777e99
promptly violated that for lxc. Patch originally posted by Eric Blake <eblake@redhat.com>.
This commit is contained in:
parent
cc7329317f
commit
192a86cadf
@ -351,24 +351,18 @@ int lxcContainerWaitForContinue(int control)
|
||||
*/
|
||||
static int lxcContainerSetID(virDomainDefPtr def)
|
||||
{
|
||||
gid_t *groups;
|
||||
int ngroups;
|
||||
|
||||
/* Only call virSetUIDGID when user namespace is enabled
|
||||
* for this container. And user namespace is only enabled
|
||||
* when nuidmap&ngidmap is not zero */
|
||||
|
||||
VIR_DEBUG("Set UID/GID to 0/0");
|
||||
if (def->idmap.nuidmap &&
|
||||
((ngroups = virGetGroupList(0, 0, &groups) < 0) ||
|
||||
virSetUIDGID(0, 0, groups, ngroups) < 0)) {
|
||||
virSetUIDGID(0, 0, NULL, 0) < 0) {
|
||||
virReportSystemError(errno, "%s",
|
||||
_("setuid or setgid failed"));
|
||||
VIR_FREE(groups);
|
||||
return -1;
|
||||
}
|
||||
|
||||
VIR_FREE(groups);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user