From: Steven Whitehouse <swhiteho@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Sasha Levin <levinsasha928@gmail.com>,
David Miller <davem@davemloft.net>,
Matt Mackall <mpm@selenic.com>,
Christoph Lameter <cl@linux-foundation.org>,
Pekka Enberg <penberg@kernel.org>, linux-mm <linux-mm@kvack.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
netdev <netdev@vger.kernel.org>,
Chrissie Caulfield <ccaulfie@redhat.com>
Subject: Re: [BUG] 3.2-rc2: BUG kmalloc-8: Redzone overwritten
Date: Mon, 21 Nov 2011 10:58:30 +0000 [thread overview]
Message-ID: <1321873110.2710.13.camel@menhir> (raw)
In-Reply-To: <1321870915.2552.22.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>
Hi,
On Mon, 2011-11-21 at 11:21 +0100, Eric Dumazet wrote:
> Le lundi 21 novembre 2011 A 11:15 +0100, Eric Dumazet a A(C)crit :
>
> >
> > Hmm, trinity tries to crash decnet ;)
> >
> > Maybe we should remove this decnet stuff for good instead of tracking
> > all bugs just for the record. Is there anybody still using decnet ?
> >
The best place to ask that question is on the decnet mailing list:
linux-decnet-user@lists.sourceforge.net. I've BCC'd this message since
that list requires you to be subscribed in order to post there.
I have to say that I've been wondering lately whether it has got to the
point where it is no longer useful. Has anybody actually tested it
lately against "real" DEC implementations?
Steve.
>
> > For example dn_start_slow_timer() starts a timer without holding a
> > reference on struct sock, this is highly suspect.
> >
> > [PATCH] decnet: proper socket refcounting
> >
> > Better use sk_reset_timer() / sk_stop_timer() helpers to make sure we
> > dont access already freed/reused memory later.
> >
> > Reported-by: Sasha Levin <levinsasha928@gmail.com>
> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
>
> Hmm, I forgot to remove the sock_hold(sk) call from dn_slow_timer(),
> here is V2 :
>
> [PATCH] decnet: proper socket refcounting
>
> Better use sk_reset_timer() / sk_stop_timer() helpers to make sure we
> dont access already freed/reused memory later.
>
> Reported-by: Sasha Levin <levinsasha928@gmail.com>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> ---
> V2: remove sock_hold(sk) call from dn_slow_timer()
>
> net/decnet/dn_timer.c | 17 +++++------------
> 1 file changed, 5 insertions(+), 12 deletions(-)
>
> diff --git a/net/decnet/dn_timer.c b/net/decnet/dn_timer.c
> index 67f691b..d9c150c 100644
> --- a/net/decnet/dn_timer.c
> +++ b/net/decnet/dn_timer.c
> @@ -36,16 +36,13 @@ static void dn_slow_timer(unsigned long arg);
>
> void dn_start_slow_timer(struct sock *sk)
> {
> - sk->sk_timer.expires = jiffies + SLOW_INTERVAL;
> - sk->sk_timer.function = dn_slow_timer;
> - sk->sk_timer.data = (unsigned long)sk;
> -
> - add_timer(&sk->sk_timer);
> + setup_timer(&sk->sk_timer, dn_slow_timer, (unsigned long)sk);
> + sk_reset_timer(sk, &sk->sk_timer, jiffies + SLOW_INTERVAL);
> }
>
> void dn_stop_slow_timer(struct sock *sk)
> {
> - del_timer(&sk->sk_timer);
> + sk_stop_timer(sk, &sk->sk_timer);
> }
>
> static void dn_slow_timer(unsigned long arg)
> @@ -53,12 +50,10 @@ static void dn_slow_timer(unsigned long arg)
> struct sock *sk = (struct sock *)arg;
> struct dn_scp *scp = DN_SK(sk);
>
> - sock_hold(sk);
> bh_lock_sock(sk);
>
> if (sock_owned_by_user(sk)) {
> - sk->sk_timer.expires = jiffies + HZ / 10;
> - add_timer(&sk->sk_timer);
> + sk_reset_timer(sk, &sk->sk_timer, jiffies + HZ / 10);
> goto out;
> }
>
> @@ -100,9 +95,7 @@ static void dn_slow_timer(unsigned long arg)
> scp->keepalive_fxn(sk);
> }
>
> - sk->sk_timer.expires = jiffies + SLOW_INTERVAL;
> -
> - add_timer(&sk->sk_timer);
> + sk_reset_timer(sk, &sk->sk_timer, jiffies + SLOW_INTERVAL);
> out:
> bh_unlock_sock(sk);
> sock_put(sk);
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-11-21 10:57 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-21 9:14 [BUG] 3.2-rc2: BUG kmalloc-8: Redzone overwritten Sasha Levin
2011-11-21 10:15 ` Eric Dumazet
2011-11-21 10:21 ` Eric Dumazet
2011-11-21 10:22 ` Sasha Levin
2011-11-26 10:54 ` Sasha Levin
2011-11-26 10:59 ` Eric Dumazet
2011-11-26 20:49 ` David Miller
2011-11-21 10:58 ` Steven Whitehouse [this message]
2011-11-26 20:50 ` David Miller
2011-11-28 9:58 ` Christine Caulfield
2011-11-28 14:22 ` Proposed removal of DECnet support (was: Re: [BUG] 3.2-rc2: BUG kmalloc-8: Redzone overwritten) Steven Whitehouse
2011-11-29 14:47 ` Philipp Schafft
2011-11-30 13:52 ` [Linux-decnet-user] Proposed removal of DECnet support (was:Re: [BUG] 3.2-rc2:BUG " mike.gair
2011-11-30 14:52 ` Steven Whitehouse
2011-12-02 9:14 ` mike.gair
2011-12-04 19:54 ` Philipp Schafft
2011-12-04 19:50 ` Philipp Schafft
2011-12-05 1:23 ` Ben Hutchings
2011-12-05 10:14 ` Philipp Schafft
2011-11-30 14:03 ` [Linux-decnet-user] Proposed removal of DECnet support Bob Armstrong
2011-11-28 7:14 ` [PATCH] net: Fix corruption in /proc/*/net/dev_mcast Anton Blanchard
2011-11-28 9:55 ` Eric Dumazet
2011-11-28 10:40 ` Daniel Baluta
2011-11-28 23:08 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1321873110.2710.13.camel@menhir \
--to=swhiteho@redhat.com \
--cc=ccaulfie@redhat.com \
--cc=cl@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=levinsasha928@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mpm@selenic.com \
--cc=netdev@vger.kernel.org \
--cc=penberg@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).