Cong Wang dbb2483b2a xfrm: clean up xfrm protocol checks
In commit 6a53b7593233 ("xfrm: check id proto in validate_tmpl()")
I introduced a check for xfrm protocol, but according to Herbert
IPSEC_PROTO_ANY should only be used as a wildcard for lookup, so
it should be removed from validate_tmpl().

And, IPSEC_PROTO_ANY is expected to only match 3 IPSec-specific
protocols, this is why xfrm_state_flush() could still miss
IPPROTO_ROUTING, which leads that those entries are left in
net->xfrm.state_all before exit net. Fix this by replacing
IPSEC_PROTO_ANY with zero.

This patch also extracts the check from validate_tmpl() to
xfrm_id_proto_valid() and uses it in parse_ipsecrequest().
With this, no other protocols should be added into xfrm.

Fixes: 6a53b7593233 ("xfrm: check id proto in validate_tmpl()")
Reported-by: syzbot+0bf0519d6e0de15914fe@syzkaller.appspotmail.com
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
2019-03-26 08:35:36 +01:00
..
2018-09-08 01:39:47 +09:00
2018-01-19 14:02:12 -05:00
2018-09-18 19:55:01 -07:00
2019-02-21 16:23:56 -08:00
2018-12-10 15:54:34 -08:00
2018-10-31 12:37:12 -07:00
2019-01-23 11:18:00 -08:00
2018-09-26 20:22:19 -07:00
2018-07-30 09:10:25 -07:00
2016-07-08 12:20:57 +02:00
2018-02-28 11:43:28 -05:00
2018-04-23 10:21:24 -04:00
2017-10-11 09:49:34 +02:00
2018-11-07 23:00:23 -08:00
2017-12-11 14:10:06 -05:00
2019-02-25 14:32:35 -08:00
2019-02-25 14:32:35 -08:00
2016-08-17 19:36:23 -04:00
2018-09-13 09:04:58 -07:00
2016-10-03 02:00:22 -04:00
2018-04-07 22:32:31 -04:00
2016-07-08 12:20:57 +02:00
2017-11-08 16:12:33 +09:00
2018-09-25 20:17:35 -07:00
2017-12-05 14:37:13 -05:00
2018-05-16 07:23:35 +02:00
2018-06-22 13:43:27 +09:00
2018-12-20 16:56:04 -08:00
2018-12-07 12:59:08 -08:00
2018-08-29 12:25:53 -07:00
2019-03-26 08:35:36 +01:00