mirror of
https://github.com/S3NEO/android_kernel_samsung_msm8226.git
synced 2024-11-07 03:47:13 +00:00
xfrm: join error paths
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8da73b73ef
commit
d8eb93078c
1 changed files with 12 additions and 10 deletions
|
@ -1688,21 +1688,16 @@ static int xfrm_add_acquire(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||
int err = -ENOMEM;
|
||||
|
||||
if (!x)
|
||||
return err;
|
||||
goto nomem;
|
||||
|
||||
err = verify_newpolicy_info(&ua->policy);
|
||||
if (err) {
|
||||
printk("BAD policy passed\n");
|
||||
kfree(x);
|
||||
return err;
|
||||
}
|
||||
if (err)
|
||||
goto bad_policy;
|
||||
|
||||
/* build an XP */
|
||||
xp = xfrm_policy_construct(net, &ua->policy, attrs, &err);
|
||||
if (!xp) {
|
||||
kfree(x);
|
||||
return err;
|
||||
}
|
||||
if (!xp)
|
||||
goto free_state;
|
||||
|
||||
memcpy(&x->id, &ua->id, sizeof(ua->id));
|
||||
memcpy(&x->props.saddr, &ua->saddr, sizeof(ua->saddr));
|
||||
|
@ -1727,6 +1722,13 @@ static int xfrm_add_acquire(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|||
kfree(xp);
|
||||
|
||||
return 0;
|
||||
|
||||
bad_policy:
|
||||
printk("BAD policy passed\n");
|
||||
free_state:
|
||||
kfree(x);
|
||||
nomem:
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_XFRM_MIGRATE
|
||||
|
|
Loading…
Reference in a new issue