diff options
| -rw-r--r-- | net/ipv4/esp4.c | 2 | ||||
| -rw-r--r-- | net/ipv6/esp6.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c index 6b1a31a74cf2..ba9840195cf2 100644 --- a/net/ipv4/esp4.c +++ b/net/ipv4/esp4.c | |||
| @@ -110,6 +110,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb) | |||
| 110 | if (!sg) | 110 | if (!sg) |
| 111 | goto unlock; | 111 | goto unlock; |
| 112 | } | 112 | } |
| 113 | sg_init_table(sg, nfrags); | ||
| 113 | skb_to_sgvec(skb, sg, esph->enc_data+esp->conf.ivlen-skb->data, clen); | 114 | skb_to_sgvec(skb, sg, esph->enc_data+esp->conf.ivlen-skb->data, clen); |
| 114 | err = crypto_blkcipher_encrypt(&desc, sg, sg, clen); | 115 | err = crypto_blkcipher_encrypt(&desc, sg, sg, clen); |
| 115 | if (unlikely(sg != &esp->sgbuf[0])) | 116 | if (unlikely(sg != &esp->sgbuf[0])) |
| @@ -201,6 +202,7 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) | |||
| 201 | if (!sg) | 202 | if (!sg) |
| 202 | goto out; | 203 | goto out; |
| 203 | } | 204 | } |
| 205 | sg_init_table(sg, nfrags); | ||
| 204 | skb_to_sgvec(skb, sg, sizeof(*esph) + esp->conf.ivlen, elen); | 206 | skb_to_sgvec(skb, sg, sizeof(*esph) + esp->conf.ivlen, elen); |
| 205 | err = crypto_blkcipher_decrypt(&desc, sg, sg, elen); | 207 | err = crypto_blkcipher_decrypt(&desc, sg, sg, elen); |
| 206 | if (unlikely(sg != &esp->sgbuf[0])) | 208 | if (unlikely(sg != &esp->sgbuf[0])) |
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c index 72a659806cad..f67d51a4e56d 100644 --- a/net/ipv6/esp6.c +++ b/net/ipv6/esp6.c | |||
| @@ -109,6 +109,7 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb) | |||
| 109 | if (!sg) | 109 | if (!sg) |
| 110 | goto unlock; | 110 | goto unlock; |
| 111 | } | 111 | } |
| 112 | sg_init_table(sg, nfrags); | ||
| 112 | skb_to_sgvec(skb, sg, esph->enc_data+esp->conf.ivlen-skb->data, clen); | 113 | skb_to_sgvec(skb, sg, esph->enc_data+esp->conf.ivlen-skb->data, clen); |
| 113 | err = crypto_blkcipher_encrypt(&desc, sg, sg, clen); | 114 | err = crypto_blkcipher_encrypt(&desc, sg, sg, clen); |
| 114 | if (unlikely(sg != &esp->sgbuf[0])) | 115 | if (unlikely(sg != &esp->sgbuf[0])) |
| @@ -205,6 +206,7 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb) | |||
| 205 | goto out; | 206 | goto out; |
| 206 | } | 207 | } |
| 207 | } | 208 | } |
| 209 | sg_init_table(sg, nfrags); | ||
| 208 | skb_to_sgvec(skb, sg, sizeof(*esph) + esp->conf.ivlen, elen); | 210 | skb_to_sgvec(skb, sg, sizeof(*esph) + esp->conf.ivlen, elen); |
| 209 | ret = crypto_blkcipher_decrypt(&desc, sg, sg, elen); | 211 | ret = crypto_blkcipher_decrypt(&desc, sg, sg, elen); |
| 210 | if (unlikely(sg != &esp->sgbuf[0])) | 212 | if (unlikely(sg != &esp->sgbuf[0])) |
