diff options
Diffstat (limited to 'net/ipv6/esp6.c')
| -rw-r--r-- | net/ipv6/esp6.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c index 88a7579c23bd..63b2b66f9dfa 100644 --- a/net/ipv6/esp6.c +++ b/net/ipv6/esp6.c @@ -601,12 +601,11 @@ static void esp_input_done_esn(struct crypto_async_request *base, int err)  static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)  { -	struct ip_esp_hdr *esph;  	struct crypto_aead *aead = x->data;  	struct aead_request *req;  	struct sk_buff *trailer;  	int ivlen = crypto_aead_ivsize(aead); -	int elen = skb->len - sizeof(*esph) - ivlen; +	int elen = skb->len - sizeof(struct ip_esp_hdr) - ivlen;  	int nfrags;  	int assoclen;  	int seqhilen; @@ -616,7 +615,7 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)  	u8 *iv;  	struct scatterlist *sg; -	if (!pskb_may_pull(skb, sizeof(*esph) + ivlen)) { +	if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) {  		ret = -EINVAL;  		goto out;  	} @@ -626,7 +625,7 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)  		goto out;  	} -	assoclen = sizeof(*esph); +	assoclen = sizeof(struct ip_esp_hdr);  	seqhilen = 0;  	if (x->props.flags & XFRM_STATE_ESN) {  | 
