[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <E1Km7wh-00029a-VU@gondolin.me.apana.org.au>
Date: Sat, 04 Oct 2008 22:17:23 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: timo.teras@....fi (Timo Ter??s)
Cc: netdev@...r.kernel.org, davem@...emloft.net
Subject: Re: key: Free dumping state on socket close
Timo Ter??s <timo.teras@....fi> wrote:
> Fix a xfrm_{state,policy}_walk leak if pfkey socket is closed while
> dumping is on-going.
>
> Signed-off-by: Timo Teras <timo.teras@....fi>
> ---
> Checked netlink code and the dumper clean up is done in there in
> netlink_sock_destruct.
>
> I'll update the "put dumpers on dump list" patch by making the
> state release a function since there's the skb to free too.
>
> net/key/af_key.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/net/key/af_key.c b/net/key/af_key.c
> index d628df9..97007de 100644
> --- a/net/key/af_key.c
> +++ b/net/key/af_key.c
> @@ -89,6 +89,14 @@ static int pfkey_do_dump(struct pfkey_sock *pfk)
>
> static void pfkey_sock_destruct(struct sock *sk)
> {
> + struct pfkey_sock *pfk = pfkey_sk(sk);
> +
> + if (pfk->dump.dump) {
> + pfk->dump.done(pfk);
> + pfk->dump.dump = NULL;
> + pfk->dump.done = NULL;
> + }
> +
> skb_queue_purge(&sk->sk_receive_queue);
>
> if (!sock_flag(sk, SOCK_DEAD)) {
Acked-by: Herbert Xu <herbert@...dor.apana.org.au>
Thanks,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists