Blame SOURCES/0027-nft-Fix-error-reporting-for-refreshed-transactions.patch

87db66
From 2dff9a669400644ec1e66d394b03d743eec2cd55 Mon Sep 17 00:00:00 2001
87db66
From: Phil Sutter <phil@nwl.cc>
87db66
Date: Mon, 5 Oct 2020 15:54:35 +0200
87db66
Subject: [PATCH] nft: Fix error reporting for refreshed transactions
87db66
87db66
When preparing a batch from the list of batch objects in nft_action(),
87db66
the sequence number used for each object is stored within that object
87db66
for later matching against returned error messages. Though if the
87db66
transaction has to be refreshed, some of those objects may be skipped,
87db66
other objects take over their sequence number and errors are matched to
87db66
skipped objects. Avoid this by resetting the skipped object's sequence
87db66
number to zero.
87db66
87db66
Fixes: 58d7de0181f61 ("xtables: handle concurrent ruleset modifications")
87db66
Signed-off-by: Phil Sutter <phil@nwl.cc>
87db66
Reviewed-by: Florian Westphal <fw@strlen.de>
87db66
(cherry picked from commit e98b825a037807bf6c918eb66ee9682cc4c46183)
87db66
Signed-off-by: Phil Sutter <psutter@redhat.com>
87db66
---
87db66
 iptables/nft.c | 5 +++--
87db66
 1 file changed, 3 insertions(+), 2 deletions(-)
87db66
87db66
diff --git a/iptables/nft.c b/iptables/nft.c
87db66
index 0efd18d57320f..d661ac2cafda6 100644
87db66
--- a/iptables/nft.c
87db66
+++ b/iptables/nft.c
87db66
@@ -2767,9 +2767,10 @@ retry:
87db66
 	h->nft_genid++;
87db66
 
87db66
 	list_for_each_entry(n, &h->obj_list, head) {
87db66
-
87db66
-		if (n->skip)
87db66
+		if (n->skip) {
87db66
+			n->seq = 0;
87db66
 			continue;
87db66
+		}
87db66
 
87db66
 		n->seq = seq++;
87db66
 		switch (n->type) {
87db66
-- 
87db66
2.28.0
87db66