mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 16:14:13 +08:00
uidgid: make uid_valid and gid_valid work with !CONFIG_MULTIUSER
{u,g}id_valid call {u,g}id_eq, which calls __k{u,g}id_val on both arguments and compares. With !CONFIG_MULTIUSER, __k{u,g}id_val return a constant 0, which makes {u,g}id_valid always return false. Change {u,g}id_valid to compare their argument against -1 instead. That produces identical results in the normal CONFIG_MULTIUSER=y case, but with !CONFIG_MULTIUSER will make {u,g}id_valid constant-fold into "return true;" rather than "return false;". This fixes uses of devpts without CONFIG_MULTIUSER. Signed-off-by: Josh Triplett <josh@joshtriplett.org> Reported-by: Fengguang Wu <fengguang.wu@intel.com>, Cc: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
499611ed45
commit
929aa5b250
@ -109,12 +109,12 @@ static inline bool gid_lte(kgid_t left, kgid_t right)
|
||||
|
||||
static inline bool uid_valid(kuid_t uid)
|
||||
{
|
||||
return !uid_eq(uid, INVALID_UID);
|
||||
return __kuid_val(uid) != (uid_t) -1;
|
||||
}
|
||||
|
||||
static inline bool gid_valid(kgid_t gid)
|
||||
{
|
||||
return !gid_eq(gid, INVALID_GID);
|
||||
return __kgid_val(gid) != (gid_t) -1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_USER_NS
|
||||
|
Loading…
Reference in New Issue
Block a user