net: ipv6: fix error return code
Initialize return variable before exiting on an error path. The initial initialization of the return variable is also dropped, because that value is never used. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> ( if@p1 (\(ret < 0\|ret != 0\)) { ... return ret; } | ret@p1 = 0 ) ... when != ret = e1 when != &ret *if(...) { ... when != ret = e2 when forall return ret; } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fa026e223d
commit
48f125ce1c
1 changed files with 3 additions and 3 deletions
|
@ -167,8 +167,6 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
struct esp_data *esp = x->data;
|
struct esp_data *esp = x->data;
|
||||||
|
|
||||||
/* skb is pure payload to encrypt */
|
/* skb is pure payload to encrypt */
|
||||||
err = -ENOMEM;
|
|
||||||
|
|
||||||
aead = esp->aead;
|
aead = esp->aead;
|
||||||
alen = crypto_aead_authsize(aead);
|
alen = crypto_aead_authsize(aead);
|
||||||
|
|
||||||
|
@ -203,8 +201,10 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp = esp_alloc_tmp(aead, nfrags + sglists, seqhilen);
|
tmp = esp_alloc_tmp(aead, nfrags + sglists, seqhilen);
|
||||||
if (!tmp)
|
if (!tmp) {
|
||||||
|
err = -ENOMEM;
|
||||||
goto error;
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
seqhi = esp_tmp_seqhi(tmp);
|
seqhi = esp_tmp_seqhi(tmp);
|
||||||
iv = esp_tmp_iv(aead, tmp, seqhilen);
|
iv = esp_tmp_iv(aead, tmp, seqhilen);
|
||||||
|
|
Loading…
Add table
Reference in a new issue