diff options
Diffstat (limited to 'net/key/af_key.c')
-rw-r--r-- | net/key/af_key.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/key/af_key.c b/net/key/af_key.c index 5651c29cb5bd..4af1e1d60b9f 100644 --- a/net/key/af_key.c +++ b/net/key/af_key.c | |||
@@ -1951,8 +1951,10 @@ parse_ipsecrequest(struct xfrm_policy *xp, struct sadb_x_ipsecrequest *rq) | |||
1951 | 1951 | ||
1952 | if (rq->sadb_x_ipsecrequest_mode == 0) | 1952 | if (rq->sadb_x_ipsecrequest_mode == 0) |
1953 | return -EINVAL; | 1953 | return -EINVAL; |
1954 | if (!xfrm_id_proto_valid(rq->sadb_x_ipsecrequest_proto)) | ||
1955 | return -EINVAL; | ||
1954 | 1956 | ||
1955 | t->id.proto = rq->sadb_x_ipsecrequest_proto; /* XXX check proto */ | 1957 | t->id.proto = rq->sadb_x_ipsecrequest_proto; |
1956 | if ((mode = pfkey_mode_to_xfrm(rq->sadb_x_ipsecrequest_mode)) < 0) | 1958 | if ((mode = pfkey_mode_to_xfrm(rq->sadb_x_ipsecrequest_mode)) < 0) |
1957 | return -EINVAL; | 1959 | return -EINVAL; |
1958 | t->mode = mode; | 1960 | t->mode = mode; |