xfrm: fix sa selector validation
[ Upstream commitb8d6d00797
] After commitb38ff4075a
, the following command does not work anymore: $ ip xfrm state add src 10.125.0.2 dst 10.125.0.1 proto esp spi 34 reqid 1 \ mode tunnel enc 'cbc(aes)' 0xb0abdba8b782ad9d364ec81e3a7d82a1 auth-trunc \ 'hmac(sha1)' 0xe26609ebd00acb6a4d51fca13e49ea78a72c73e6 96 flag align4 In fact, the selector is not mandatory, allow the user to provide an empty selector. Fixes:b38ff4075a
("xfrm: Fix xfrm sel prefix length validation") CC: Anirudh Gupta <anirudh.gupta@sophos.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
587a816cbe
commit
2d0dbd001b
@ -166,6 +166,9 @@ static int verify_newsa_info(struct xfrm_usersa_info *p,
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (p->sel.family) {
|
switch (p->sel.family) {
|
||||||
|
case AF_UNSPEC:
|
||||||
|
break;
|
||||||
|
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
if (p->sel.prefixlen_d > 32 || p->sel.prefixlen_s > 32)
|
if (p->sel.prefixlen_d > 32 || p->sel.prefixlen_s > 32)
|
||||||
goto out;
|
goto out;
|
||||||
|
Reference in New Issue
Block a user