From: Eric Dumazet <eric.dumazet@gmail.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>
Cc: Lennart Schulte <lennart.schulte@nets.rwth-aachen.de>,
David Miller <davem@davemloft.net>, Tejun Heo <tj@kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Fehrmann, Henning" <henning.fehrmann@aei.mpg.de>,
Carsten Aulbert <carsten.aulbert@aei.mpg.de>
Subject: Re: [PATCHv2] tcp: fix crash in tcp_xmit_retransmit_queue
Date: Mon, 19 Jul 2010 16:09:15 +0200 [thread overview]
Message-ID: <1279548555.2553.51.camel@edumazet-laptop> (raw)
In-Reply-To: <alpine.DEB.2.00.1007191319010.13002@wel-95.cs.helsinki.fi>
Le lundi 19 juillet 2010 à 14:16 +0300, Ilpo Järvinen a écrit :
> Thanks for testing.
>
> DaveM, I think this oops was introduced for 2.6.28 (in
> 08ebd1721ab8fd362e90ae17b461c07b23fa2824 it seems, to be exact) so to
> stables it should go too please. I've only tweaked the message (so no need
> for Lennart to retest v2 :-)).
>
> --
> [PATCHv2] tcp: fix crash in tcp_xmit_retransmit_queue
>
> It can happen that there are no packets in queue while calling
> tcp_xmit_retransmit_queue(). tcp_write_queue_head() then returns
> NULL and that gets deref'ed to get sacked into a local var.
>
> There is no work to do if no packets are outstanding so we just
> exit early.
>
> This oops was introduced by 08ebd1721ab8fd (tcp: remove tp->lost_out
> guard to make joining diff nicer).
>
But prior to commit 08ebd1721ab8fd3, we were not testing
tp->packets_out, but tp->lost_out
if it was 0, we were not doing the tcp_for_write_queue_from() loop.
Not sure it makes a difference ?
> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
> Reported-by: Lennart Schulte <lennart.schulte@nets.rwth-aachen.de>
> Tested-by: Lennart Schulte <lennart.schulte@nets.rwth-aachen.de>
> ---
> net/ipv4/tcp_output.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
> index b4ed957..7ed9dc1 100644
> --- a/net/ipv4/tcp_output.c
> +++ b/net/ipv4/tcp_output.c
> @@ -2208,6 +2208,9 @@ void tcp_xmit_retransmit_queue(struct sock *sk)
> int mib_idx;
> int fwd_rexmitting = 0;
>
> + if (!tp->packets_out)
> + return;
> +
> if (!tp->lost_out)
> tp->retransmit_high = tp->snd_una;
>
next prev parent reply other threads:[~2010-07-19 14:09 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-08 8:22 oops in tcp_xmit_retransmit_queue() w/ v2.6.32.15 Tejun Heo
2010-07-11 2:36 ` David Miller
2010-07-11 16:09 ` Ilpo Järvinen
2010-07-11 17:06 ` Eric Dumazet
2010-07-11 17:46 ` Eric Dumazet
2010-07-11 18:29 ` Eric Dumazet
2010-07-11 19:22 ` Ilpo Järvinen
2010-07-11 19:25 ` Ilpo Järvinen
2010-07-11 19:44 ` Ilpo Järvinen
2010-07-15 11:58 ` Lennart Schulte
2010-07-15 12:05 ` Eric Dumazet
2010-07-15 12:55 ` Lennart Schulte
2010-07-16 12:02 ` Ilpo Järvinen
2010-07-16 12:25 ` Lennart Schulte
2010-07-16 13:19 ` Ilpo Järvinen
2010-07-19 8:06 ` Lennart Schulte
2010-07-19 11:16 ` [PATCHv2] tcp: fix crash in tcp_xmit_retransmit_queue Ilpo Järvinen
2010-07-19 14:09 ` Eric Dumazet [this message]
2010-07-19 17:25 ` Ilpo Järvinen
2010-07-19 17:39 ` Eric Dumazet
2010-07-19 19:55 ` David Miller
2010-07-20 8:33 ` Ilpo Järvinen
2010-07-19 14:57 ` oops in tcp_xmit_retransmit_queue() w/ v2.6.32.15 Tejun Heo
2010-07-20 8:41 ` Ilpo Järvinen
2010-09-08 9:32 ` Ilpo Järvinen
2010-09-08 10:25 ` Tejun Heo
2010-09-08 10:34 ` Ilpo Järvinen
2010-09-09 10:27 ` Tejun Heo
2010-09-09 10:45 ` Ilpo Järvinen
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=1279548555.2553.51.camel@edumazet-laptop \
--to=eric.dumazet@gmail.com \
--cc=carsten.aulbert@aei.mpg.de \
--cc=davem@davemloft.net \
--cc=henning.fehrmann@aei.mpg.de \
--cc=ilpo.jarvinen@helsinki.fi \
--cc=lennart.schulte@nets.rwth-aachen.de \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=tj@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