On Thu, Feb 28, 2019 at 02:38:01PM +0800, Yue Haibing wrote:
>
> diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
> index a131f9f..aaa45c9 100644
> --- a/net/xfrm/xfrm_user.c
> +++ b/net/xfrm/xfrm_user.c
> @@ -1424,7 +1424,8 @@ static int verify_newpolicy_info(struct 
> xfrm_userpolicy_info *p)
>       ret = verify_policy_dir(p->dir);
>       if (ret)
>               return ret;
> -     if (p->index && ((p->index & XFRM_POLICY_MAX) != p->dir))
> +     if (p->index && (((p->index & XFRM_POLICY_MAX) != p->dir) ||
> +                      (xfrm_policy_id2dir(p->index) >= XFRM_POLICY_MAX)))

Please just check 

        xfrm_policy_id2dir(p->index) != p->dir

Thanks,
-- 
Email: Herbert Xu <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

Reply via email to