Patchwork [3.8.y.z,extended,stable] Patch "netfilter: nfnetlink_cttimeout: fix incomplete dumping of" has been added to staging queue

login
register
mail settings
Submitter Luis Henriques
Date July 9, 2013, 4:29 p.m.
Message ID <1373387374-23345-1-git-send-email-luis.henriques@canonical.com>
Download mbox | patch
Permalink /patch/257812/
State New
Headers show

Comments

Luis Henriques - July 9, 2013, 4:29 p.m.
This is a note to let you know that I have just added a patch titled

    netfilter: nfnetlink_cttimeout: fix incomplete dumping of

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

From 13705ba4840217287fc95dcc1e616bdd4bc47597 Mon Sep 17 00:00:00 2001
From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Sat, 1 Jun 2013 15:36:02 +0200
Subject: [PATCH] netfilter: nfnetlink_cttimeout: fix incomplete dumping of
 objects

commit 37bc4f8dfa72fb43b84381abca39cfdbbc8ff2df upstream.

Fix broken incomplete object dumping if the list of objects does not
fit into one single netlink message.

Reported-by: Gabriel Lazar <Gabriel.Lazar@com.utcluj.ro>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 net/netfilter/nfnetlink_cttimeout.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--
1.8.1.2

Patch

diff --git a/net/netfilter/nfnetlink_cttimeout.c b/net/netfilter/nfnetlink_cttimeout.c
index 701c88a..65074df 100644
--- a/net/netfilter/nfnetlink_cttimeout.c
+++ b/net/netfilter/nfnetlink_cttimeout.c
@@ -220,9 +220,12 @@  ctnl_timeout_dump(struct sk_buff *skb, struct netlink_callback *cb)

 	rcu_read_lock();
 	list_for_each_entry_rcu(cur, &cttimeout_list, head) {
-		if (last && cur != last)
-			continue;
+		if (last) {
+			if (cur != last)
+				continue;

+			last = NULL;
+		}
 		if (ctnl_timeout_fill_info(skb, NETLINK_CB(cb->skb).portid,
 					   cb->nlh->nlmsg_seq,
 					   NFNL_MSG_TYPE(cb->nlh->nlmsg_type),