xfrm: compat: change expression for switch in xfrm_xlate64
authorAnastasia Belova <abelova@astralinux.ru>
Tue, 10 Jan 2023 09:14:50 +0000 (12:14 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Feb 2023 18:11:42 +0000 (19:11 +0100)
[ Upstream commit eb6c59b735aa6cca77cdbb59cc69d69a0d63d986 ]

Compare XFRM_MSG_NEWSPDINFO (value from netlink
configuration messages enum) with nlh_src->nlmsg_type
instead of nlh_src->nlmsg_type - XFRM_MSG_BASE.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 4e9505064f58 ("net/xfrm/compat: Copy xfrm_spdattr_type_t atributes")
Signed-off-by: Anastasia Belova <abelova@astralinux.ru>
Acked-by: Dmitry Safonov <0x7f454c46@gmail.com>
Tested-by: Dmitry Safonov <0x7f454c46@gmail.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/xfrm/xfrm_compat.c

index a0f62fa..12405aa 100644 (file)
@@ -302,7 +302,7 @@ static int xfrm_xlate64(struct sk_buff *dst, const struct nlmsghdr *nlh_src)
        nla_for_each_attr(nla, attrs, len, remaining) {
                int err;
 
-               switch (type) {
+               switch (nlh_src->nlmsg_type) {
                case XFRM_MSG_NEWSPDINFO:
                        err = xfrm_nla_cpy(dst, nla, nla_len(nla));
                        break;