From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>,
"David S. Miller" <davem@davemloft.net>,
Greg Kroah-Hartman <gregkh@suse.de>
Subject: [2.6.20.21 review 31/35] Fix IPV6 append OOPS.
Date: Sat, 13 Oct 2007 17:28:53 +0200 [thread overview]
Message-ID: <20071013143511.%N@1wt.eu> (raw)
In-Reply-To: 20071013142822.%N@1wt.eu
[-- Attachment #1: 0091-Fix-IPV6-append-OOPS.patch --]
[-- Type: text/plain, Size: 1639 bytes --]
commit e1f52208bb968291f7d9142eff60b62984b4a511 in mainline.
[IPv6]: Fix NULL pointer dereference in ip6_flush_pending_frames
Some of skbs in sk->write_queue do not have skb->dst because
we do not fill skb->dst when we allocate new skb in append_data().
BTW, I think we may not need to (or we should not) increment some stats
when using corking; if 100 sendmsg() (with MSG_MORE) result in 2 packets,
how many should we increment?
If 100, we should set skb->dst for every queued skbs.
If 1 (or 2 (*)), we increment the stats for the first queued skb and
we should just skip incrementing OutDiscards for the rest of queued skbs,
adn we should also impelement this semantics in other places;
e.g., we should increment other stats just once, not 100 times.
*: depends on the place we are discarding the datagram.
I guess should just increment by 1 (or 2).
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/ipv6/ip6_output.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
Index: 2.6/net/ipv6/ip6_output.c
===================================================================
--- 2.6.orig/net/ipv6/ip6_output.c
+++ 2.6/net/ipv6/ip6_output.c
@@ -1357,8 +1357,9 @@ void ip6_flush_pending_frames(struct soc
struct sk_buff *skb;
while ((skb = __skb_dequeue_tail(&sk->sk_write_queue)) != NULL) {
- IP6_INC_STATS(ip6_dst_idev(skb->dst),
- IPSTATS_MIB_OUTDISCARDS);
+ if (skb->dst)
+ IP6_INC_STATS(ip6_dst_idev(skb->dst),
+ IPSTATS_MIB_OUTDISCARDS);
kfree_skb(skb);
}
--
next prev parent reply other threads:[~2007-10-13 14:52 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-13 14:28 [2.6.20.21 review 00/35] 2.6.20.21 -stable review Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 01/35] ACPICA: Fixed possible corruption of global GPE list Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 02/35] AVR32: Fix atomic_add_unless() and atomic_sub_unless() Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 03/35] r8169: avoid needless NAPI poll scheduling Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 04/35] i386: allow debuggers to access the vsyscall page with compat vDSO Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 05/35] DCCP: Fix DCCP GFP_KERNEL allocation in atomic context Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 06/35] Netfilter: Missing Kbuild entry for netfilter Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 07/35] SNAP: Fix SNAP protocol header accesses Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 09/35] SPARC64: Fix sparc64 task stack traces Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 10/35] TCP: Do not autobind ports for TCP sockets Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 11/35] TCP: Fix TCP rate-halving on bidirectional flows Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 13/35] USB: allow retry on descriptor fetch errors Willy Tarreau
2007-10-13 17:15 ` [2.6.20.21 review 12/35] TCP: Fix TCP handling of SACK in bidirectional flows Ilpo Järvinen
2007-10-13 17:22 ` Willy Tarreau
2007-10-13 17:50 ` Adrian Bunk
2007-10-13 18:10 ` Willy Tarreau
2007-10-14 8:55 ` Ilpo Järvinen
2007-10-13 15:28 ` [2.6.20.21 review 14/35] USB: fix DoS in pwc USB video driver Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 15/35] Convert snd-page-alloc proc file to use seq_file Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 16/35] setpgid(child) fails if the child was forked by sub-thread Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 17/35] sigqueue_free: fix the race with collect_signal() Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 18/35] USB: fix linked list insertion bugfix for usb core Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 19/35] POWERPC: Flush registers to proper task context Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 21/35] V4L: cx88: Avoid a NULL pointer dereference during mpeg_open() Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 22/35] Fix "Fix DAC960 driver on machines which dont support 64-bit DMA" Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 23/35] futex_compat: fix list traversal bugs Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 24/35] Leases can be hidden by flocks Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 25/35] nfs: fix oops re sysctls and V4 support Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 26/35] dir_index: error out instead of BUG on corrupt dx dirs Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 27/35] ieee1394: ohci1394: fix initialization if built non-modular Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 28/35] Fix race with shared tag queue maps Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 29/35] crypto: blkcipher_get_spot() handling of buffer at end of page Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 30/35] fix realtek phy id in forcedeth Willy Tarreau
2007-10-13 15:28 ` Willy Tarreau [this message]
2007-10-13 15:28 ` [2.6.20.21 review 33/35] Fix ipv6 double-sock-release with MSG_CONFIRM Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 34/35] Fix datagram recvmsg NULL iov handling regression Willy Tarreau
2007-10-13 15:28 ` [2.6.20.21 review 35/35] sysfs: store sysfs inode nrs in s_ino to avoid readdir oopses Willy Tarreau
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=20071013143511.%N@1wt.eu \
--to=w@1wt.eu \
--cc=davem@davemloft.net \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@kernel.org \
--cc=yoshfuji@linux-ipv6.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