Skip to content

Commit

Permalink
net: ipv6: fix error return code
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Julia Lawall authored and David S. Miller committed Aug 31, 2012
1 parent fa026e2 commit 48f125c
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions net/ipv6/esp6.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,6 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
struct esp_data *esp = x->data;

/* skb is pure payload to encrypt */
err = -ENOMEM;

aead = esp->aead;
alen = crypto_aead_authsize(aead);

Expand Down Expand Up @@ -203,8 +201,10 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
}

tmp = esp_alloc_tmp(aead, nfrags + sglists, seqhilen);
if (!tmp)
if (!tmp) {
err = -ENOMEM;
goto error;
}

seqhi = esp_tmp_seqhi(tmp);
iv = esp_tmp_iv(aead, tmp, seqhilen);
Expand Down

0 comments on commit 48f125c

Please sign in to comment.