mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-13 13:44:57 +00:00
get_mapped_rootid: avoid using (uid_t) -1
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
1354955b02
commit
2a9a80cb1c
@ -3134,7 +3134,8 @@ int lxc_map_ids(struct lxc_list *idmap, pid_t pid)
|
||||
* return the host uid to which the container root is mapped, or -1 on
|
||||
* error
|
||||
*/
|
||||
static uid_t get_mapped_rootid(struct lxc_conf *conf)
|
||||
bool get_mapped_rootid(struct lxc_conf *conf, enum idtype idtype,
|
||||
unsigned long *val)
|
||||
{
|
||||
struct lxc_list *it;
|
||||
struct id_map *map;
|
||||
@ -3145,9 +3146,10 @@ static uid_t get_mapped_rootid(struct lxc_conf *conf)
|
||||
continue;
|
||||
if (map->nsid != 0)
|
||||
continue;
|
||||
return (uid_t) map->hostid;
|
||||
*val = map->hostid;
|
||||
return true;
|
||||
}
|
||||
return (uid_t)-1;
|
||||
return false;
|
||||
}
|
||||
|
||||
int mapped_hostid(int id, struct lxc_conf *conf)
|
||||
@ -3304,11 +3306,14 @@ int chown_mapped_root(char *path, struct lxc_conf *conf)
|
||||
{
|
||||
uid_t rootid;
|
||||
pid_t pid;
|
||||
unsigned long val;
|
||||
|
||||
if ((rootid = get_mapped_rootid(conf)) <= 0) {
|
||||
if (!get_mapped_rootid(conf, ID_TYPE_UID, &val)) {
|
||||
ERROR("No mapping for container root");
|
||||
return -1;
|
||||
}
|
||||
rootid = (uid_t) val;
|
||||
|
||||
if (geteuid() == 0) {
|
||||
if (chown(path, rootid, -1) < 0) {
|
||||
ERROR("Error chowning %s", path);
|
||||
|
Loading…
Reference in New Issue
Block a user