af_key: mark policy as dead before destroying

xfrm_policy_destroy() will oops if not dead policy is passed to it.
On error path in pfkey_compile_policy() exactly this happens.

Oopsable for CAP_NET_ADMIN owners.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Alexey Dobriyan 2008-11-06 23:08:37 -08:00 committed by David S. Miller
parent 4bab0ea1d4
commit 70e90679ff

View file

@ -3188,6 +3188,7 @@ static struct xfrm_policy *pfkey_compile_policy(struct sock *sk, int opt,
return xp; return xp;
out: out:
xp->walk.dead = 1;
xfrm_policy_destroy(xp); xfrm_policy_destroy(xp);
return NULL; return NULL;
} }