[PATCH] userns: Fix k[ug]id_has_mapping() for CONFIG_USER_NS=n

From: Seth Forshee
Date: Wed Sep 03 2014 - 12:00:22 EST


Calling k[ug]id_has_mapping() with INVALID_[UG]ID returns false
if user namespaces are enabled and true if they are disabled.
INVALID_[UG]ID is never included in any mapping, so fix the
CONFIG_USER_NS=n to return false for invalid ids.

Signed-off-by: Seth Forshee <seth.forshee@xxxxxxxxxxxxx>
---

Hi Eric,

I noticed this inconsistency when working on support for user namespaces
in fuse. As far as I know this isn't breaking anything, but it seems
like invalid should be invalid even with CONFIG_USER_NS=n. A
compile/boot test with this patch didn't reveal any breakage.

Thanks,
Seth

include/linux/uidgid.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/uidgid.h b/include/linux/uidgid.h
index 2d1f9b627f91..6c302267f7cc 100644
--- a/include/linux/uidgid.h
+++ b/include/linux/uidgid.h
@@ -165,12 +165,12 @@ static inline gid_t from_kgid_munged(struct user_namespace *to, kgid_t kgid)

static inline bool kuid_has_mapping(struct user_namespace *ns, kuid_t uid)
{
- return true;
+ return uid_valid(uid);
}

static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
{
- return true;
+ return gid_valid(gid);
}

#endif /* CONFIG_USER_NS */
--
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/