af_key: Fix memory leak in key_notify_policy.
We leak the allocated out_skb in case pfkey_xfrm_policy2msg() fails. Fix this by freeing it on error. Reported-by: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
parent
374d1b5a81
commit
1e532d2b49
|
@ -2202,8 +2202,10 @@ static int key_notify_policy(struct xfrm_policy *xp, int dir, const struct km_ev
|
||||||
return PTR_ERR(out_skb);
|
return PTR_ERR(out_skb);
|
||||||
|
|
||||||
err = pfkey_xfrm_policy2msg(out_skb, xp, dir);
|
err = pfkey_xfrm_policy2msg(out_skb, xp, dir);
|
||||||
if (err < 0)
|
if (err < 0) {
|
||||||
|
kfree_skb(out_skb);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
out_hdr = (struct sadb_msg *) out_skb->data;
|
out_hdr = (struct sadb_msg *) out_skb->data;
|
||||||
out_hdr->sadb_msg_version = PF_KEY_V2;
|
out_hdr->sadb_msg_version = PF_KEY_V2;
|
||||||
|
|
Loading…
Reference in a new issue