All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Patrick McHardy <kaber@trash.net>,
	"David S. Miller" <davem@davemloft.net>
Subject: [ 27/42] netfilter: dont reset nf_trace in nf_reset()
Date: Mon, 29 Apr 2013 12:02:09 -0700	[thread overview]
Message-ID: <20130429184755.486113843@linuxfoundation.org> (raw)
In-Reply-To: <20130429184752.435249613@linuxfoundation.org>

3.8-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Patrick McHardy <kaber@trash.net>

[ Upstream commit 124dff01afbdbff251f0385beca84ba1b9adda68 ]

Commit 130549fe ("netfilter: reset nf_trace in nf_reset") added code
to reset nf_trace in nf_reset(). This is wrong and unnecessary.

nf_reset() is used in the following cases:

- when passing packets up the the socket layer, at which point we want to
  release all netfilter references that might keep modules pinned while
  the packet is queued. nf_trace doesn't matter anymore at this point.

- when encapsulating or decapsulating IPsec packets. We want to continue
  tracing these packets after IPsec processing.

- when passing packets through virtual network devices. Only devices on
  that encapsulate in IPv4/v6 matter since otherwise nf_trace is not
  used anymore. Its not entirely clear whether those packets should
  be traced after that, however we've always done that.

- when passing packets through virtual network devices that make the
  packet cross network namespace boundaries. This is the only cases
  where we clearly want to reset nf_trace and is also what the
  original patch intended to fix.

Add a new function nf_reset_trace() and use it in dev_forward_skb() to
fix this properly.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/skbuff.h |    7 +++++++
 net/core/dev.c         |    1 +
 2 files changed, 8 insertions(+)

--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2597,6 +2597,13 @@ static inline void nf_reset(struct sk_bu
 #endif
 }
 
+static inline void nf_reset_trace(struct sk_buff *skb)
+{
+#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE)
+	skb->nf_trace = 0;
+#endif
+}
+
 /* Note: This doesn't put any conntrack and bridge info in dst. */
 static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src)
 {
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1737,6 +1737,7 @@ int dev_forward_skb(struct net_device *d
 	skb->mark = 0;
 	secpath_reset(skb);
 	nf_reset(skb);
+	nf_reset_trace(skb);
 	return netif_rx(skb);
 }
 EXPORT_SYMBOL_GPL(dev_forward_skb);



  parent reply	other threads:[~2013-04-29 19:34 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-29 19:01 [ 00/42] 3.8.11-stable review Greg Kroah-Hartman
2013-04-29 19:01 ` [ 01/42] aio: fix possible invalid memory access when DEBUG is enabled Greg Kroah-Hartman
2013-04-29 19:01 ` [ 02/42] TTY: do not update atime/mtime on read/write Greg Kroah-Hartman
2013-04-30  0:14   ` Simon Kirby
2013-04-30  0:21     ` Greg Kroah-Hartman
2013-04-30  0:36       ` Simon Kirby
2013-04-30  1:37         ` Greg Kroah-Hartman
2013-04-30 23:50           ` Simon Kirby
2013-05-01  0:57           ` Linus Torvalds
2013-05-01  1:41             ` Linus Torvalds
2013-05-01  5:23               ` Jiri Slaby
2013-05-01 13:05               ` Wolfram Gloger
2013-05-02 16:11               ` Simon Kirby
2013-04-29 19:01 ` [ 03/42] TTY: fix atime/mtime regression Greg Kroah-Hartman
2013-04-30 12:02   ` Wolfram Gloger
2013-04-29 19:01 ` [ 04/42] sparc64: Fix race in TLB batch processing Greg Kroah-Hartman
2013-04-29 19:01 ` [ 05/42] atm: update msg_namelen in vcc_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 06/42] ax25: fix info leak via msg_name in ax25_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 07/42] Bluetooth: fix possible info leak in bt_sock_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 08/42] Bluetooth: RFCOMM - Fix missing msg_namelen update in rfcomm_sock_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 09/42] Bluetooth: SCO - Fix missing msg_namelen update in sco_sock_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 10/42] caif: Fix missing msg_namelen update in caif_seqpkt_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 11/42] irda: Fix missing msg_namelen update in irda_recvmsg_dgram() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 12/42] iucv: Fix missing msg_namelen update in iucv_sock_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 13/42] l2tp: fix info leak in l2tp_ip6_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 14/42] llc: Fix missing msg_namelen update in llc_ui_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 15/42] netrom: fix info leak via msg_name in nr_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 16/42] NFC: llcp: fix info leaks via msg_name in llcp_sock_recvmsg() Greg Kroah-Hartman
2013-04-29 19:01 ` [ 17/42] rose: fix info leak via msg_name in rose_recvmsg() Greg Kroah-Hartman
2013-04-29 19:02 ` [ 18/42] tipc: fix info leaks via msg_name in recv_msg/recv_stream Greg Kroah-Hartman
2013-04-29 19:02 ` [ 19/42] cbq: incorrect processing of high limits Greg Kroah-Hartman
2013-04-29 19:02 ` [ 20/42] net IPv6 : Fix broken IPv6 routing table after loopback down-up Greg Kroah-Hartman
2013-04-29 19:02 ` [ 21/42] net: count hw_addr syncs so that unsync works properly Greg Kroah-Hartman
2013-04-29 19:02 ` [ 22/42] atl1e: limit gso segment size to prevent generation of wrong ip length fields Greg Kroah-Hartman
2013-04-29 19:02 ` [ 23/42] bonding: fix bonding_masters race condition in bond unloading Greg Kroah-Hartman
2013-04-29 19:02 ` [ 24/42] bonding: IFF_BONDING is not stripped on enslave failure Greg Kroah-Hartman
2013-04-29 19:02 ` [ 25/42] bonding: fix l23 and l34 load balancing in forwarding path Greg Kroah-Hartman
2013-04-29 19:02 ` [ 26/42] af_unix: If we dont care about credentials coallesce all messages Greg Kroah-Hartman
2013-04-29 19:02 ` Greg Kroah-Hartman [this message]
2013-04-29 19:02 ` [ 28/42] ipv6/tcp: Stop processing ICMPv6 redirect messages Greg Kroah-Hartman
2013-04-29 19:02 ` [ 29/42] rtnetlink: Call nlmsg_parse() with correct header length Greg Kroah-Hartman
2013-04-29 19:02 ` [ 30/42] tcp: incoming connections might use wrong route under synflood Greg Kroah-Hartman
2013-04-29 19:02 ` [ 31/42] tcp: Reallocate headroom if it would overflow csum_start Greg Kroah-Hartman
2013-04-29 19:02 ` [ 32/42] net: mvmdio: add select PHYLIB Greg Kroah-Hartman
2013-04-29 19:02 ` [ 33/42] esp4: fix error return code in esp_output() Greg Kroah-Hartman
2013-04-29 19:02 ` [ 34/42] net: mvneta: fix improper tx queue usage in mvneta_tx() Greg Kroah-Hartman
2013-04-29 19:02 ` [ 35/42] net: cdc_mbim: remove bogus sizeof() Greg Kroah-Hartman
2013-04-29 19:02 ` [ 36/42] tcp: call tcp_replace_ts_recent() from tcp_ack() Greg Kroah-Hartman
2013-04-29 19:02 ` [ 37/42] net: rate-limit warn-bad-offload splats Greg Kroah-Hartman
2013-04-29 19:02 ` [ 38/42] net: fix incorrect credentials passing Greg Kroah-Hartman
2013-04-29 19:02 ` [ 39/42] net: drop dst before queueing fragments Greg Kroah-Hartman
2013-04-29 19:02 ` [ 40/42] tracing: Fix selftest function recursion accounting Greg Kroah-Hartman
2013-04-29 19:02 ` [ 41/42] ARM: 7699/1: sched_clock: Add more notrace to prevent recursion Greg Kroah-Hartman
2013-04-29 19:02 ` [ 42/42] ARM: 7692/1: iop3xx: move IOP3XX_PERIPHERAL_VIRT_BASE Greg Kroah-Hartman
2013-04-30  1:54 ` [ 00/42] 3.8.11-stable review Shuah Khan
2013-04-30  1:54   ` Shuah Khan
2013-04-30  2:02   ` Greg Kroah-Hartman

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=20130429184755.486113843@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=kaber@trash.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.