return start == ULONG_MAX ? (gid_t) -1 : start;
}
-static bool get_owner_id(const char *owner, enum subid_type id_type, char *id)
-{
- struct passwd *pw;
- struct group *gr;
- int ret = 0;
-
- switch (id_type) {
- case ID_TYPE_UID:
- pw = getpwnam(owner);
- if (pw == NULL) {
- return false;
- }
- ret = snprintf(id, ID_SIZE, "%u", pw->pw_uid);
- if (ret < 0 || ret >= ID_SIZE) {
- return false;
- }
- break;
- case ID_TYPE_GID:
- gr = getgrnam(owner);
- if (gr == NULL) {
- return false;
- }
- ret = snprintf(id, ID_SIZE, "%u", gr->gr_gid);
- if (ret < 0 || ret >= ID_SIZE) {
- return false;
- }
- break;
- default:
- return false;
- }
-
- return true;
-}
-
/*
* int list_owner_ranges(const char *owner, enum subid_type id_type, struct subordinate_range ***ranges)
*