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

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