]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
cap: fix conversions on getxattr
authorMiklos Szeredi <mszeredi@redhat.com>
Thu, 28 Jan 2021 09:22:48 +0000 (10:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Feb 2021 13:00:31 +0000 (14:00 +0100)
commit83515cf735cc53fb7030703c2a1881fe4a98f2a0
tree7516ffa2eac7c7fd76e84f8c836ad4edffee64ae
parent7b6887b4d09af91f1a8cd905b627ce7f1408071c
cap: fix conversions on getxattr

[ Upstream commit f2b00be488730522d0fb7a8a5de663febdcefe0a ]

If a capability is stored on disk in v2 format cap_inode_getsecurity() will
currently return in v2 format unconditionally.

This is wrong: v2 cap should be equivalent to a v3 cap with zero rootid,
and so the same conversions performed on it.

If the rootid cannot be mapped, v3 is returned unconverted.  Fix this so
that both v2 and v3 return -EOVERFLOW if the rootid (or the owner of the fs
user namespace in case of v2) cannot be mapped into the current user
namespace.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
security/commoncap.c