summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/mnt_idmapping.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/include/linux/mnt_idmapping.h b/include/linux/mnt_idmapping.h
index 6a752b61088b..21bd22a7b326 100644
--- a/include/linux/mnt_idmapping.h
+++ b/include/linux/mnt_idmapping.h
@@ -60,12 +60,12 @@ static inline bool vfsgid_valid(vfsgid_t gid)
static inline bool vfsuid_eq(vfsuid_t left, vfsuid_t right)
{
- return __vfsuid_val(left) == __vfsuid_val(right);
+ return vfsuid_valid(left) && __vfsuid_val(left) == __vfsuid_val(right);
}
static inline bool vfsgid_eq(vfsgid_t left, vfsgid_t right)
{
- return __vfsgid_val(left) == __vfsgid_val(right);
+ return vfsgid_valid(left) && __vfsgid_val(left) == __vfsgid_val(right);
}
/**
@@ -76,10 +76,11 @@ static inline bool vfsgid_eq(vfsgid_t left, vfsgid_t right)
* Check whether @kuid and @vfsuid have the same values.
*
* Return: true if @kuid and @vfsuid have the same value, false if not.
+ * Comparison between two invalid uids returns false.
*/
static inline bool vfsuid_eq_kuid(vfsuid_t vfsuid, kuid_t kuid)
{
- return __vfsuid_val(vfsuid) == __kuid_val(kuid);
+ return vfsuid_valid(vfsuid) && __vfsuid_val(vfsuid) == __kuid_val(kuid);
}
/**
@@ -90,10 +91,11 @@ static inline bool vfsuid_eq_kuid(vfsuid_t vfsuid, kuid_t kuid)
* Check whether @kgid and @vfsgid have the same values.
*
* Return: true if @kgid and @vfsgid have the same value, false if not.
+ * Comparison between two invalid gids returns false.
*/
static inline bool vfsgid_eq_kgid(kgid_t kgid, vfsgid_t vfsgid)
{
- return __vfsgid_val(vfsgid) == __kgid_val(kgid);
+ return vfsgid_valid(vfsgid) && __vfsgid_val(vfsgid) == __kgid_val(kgid);
}
/*