mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-27 15:49:25 +00:00
lxc-usernsexec: fix the default map behavior
We were finding it, but not saving it. Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
2716b48772
commit
c7e426bef6
@ -158,9 +158,13 @@ out_free_map:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* go through /etc/subuids and /etc/subgids to find this user's
|
* This is called if the user did not pass any uid ranges in
|
||||||
* allowed map. We only use the first one (bc otherwise we're
|
* through -m flags. It's called once to get the default uid
|
||||||
* not sure which ns ids he wants to use).
|
* map, and once for the default gid map.
|
||||||
|
* Go through /etc/subuids and /etc/subgids to find this user's
|
||||||
|
* allowed map. We only use the first one for each of uid and
|
||||||
|
* gid, because otherwise we're not sure which entries the user
|
||||||
|
* wanted.
|
||||||
*/
|
*/
|
||||||
static int read_default_map(char *fnam, char which, char *username)
|
static int read_default_map(char *fnam, char which, char *username)
|
||||||
{
|
{
|
||||||
@ -185,8 +189,11 @@ static int read_default_map(char *fnam, char which, char *username)
|
|||||||
if (!p2)
|
if (!p2)
|
||||||
continue;
|
continue;
|
||||||
newmap = malloc(sizeof(*newmap));
|
newmap = malloc(sizeof(*newmap));
|
||||||
if (!newmap)
|
if (!newmap) {
|
||||||
|
fclose(fin);
|
||||||
|
free(line);
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
newmap->host_id = atol(p1+1);
|
newmap->host_id = atol(p1+1);
|
||||||
newmap->range = atol(p2+1);
|
newmap->range = atol(p2+1);
|
||||||
newmap->ns_id = 0;
|
newmap->ns_id = 0;
|
||||||
@ -195,13 +202,13 @@ static int read_default_map(char *fnam, char which, char *username)
|
|||||||
newmap->next = active_map;
|
newmap->next = active_map;
|
||||||
else
|
else
|
||||||
newmap->next = NULL;
|
newmap->next = NULL;
|
||||||
|
active_map = newmap;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (line)
|
if (line)
|
||||||
free(line);
|
free(line);
|
||||||
fclose(fin);
|
fclose(fin);
|
||||||
free(newmap);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user