Blame SOURCES/0013-rule-fix-memleak-in-do_get_setelems.patch

9ff721
From 1c305050b37bef63a255570c27f0eead0cb4b582 Mon Sep 17 00:00:00 2001
9ff721
From: Pablo Neira Ayuso <pablo@netfilter.org>
9ff721
Date: Wed, 3 Oct 2018 16:05:32 +0200
9ff721
Subject: [PATCH] rule: fix memleak in do_get_setelems()
9ff721
9ff721
Release set and elements in case of error.
9ff721
9ff721
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
9ff721
(cherry picked from commit 406d17db7e02f78d258edb38ac8571112ef8c767)
9ff721
Signed-off-by: Phil Sutter <psutter@redhat.com>
9ff721
---
9ff721
 src/rule.c | 8 +++-----
9ff721
 1 file changed, 3 insertions(+), 5 deletions(-)
9ff721
9ff721
diff --git a/src/rule.c b/src/rule.c
9ff721
index 3065cc5474bbf..a157ac91683cc 100644
9ff721
--- a/src/rule.c
9ff721
+++ b/src/rule.c
9ff721
@@ -1911,17 +1911,15 @@ static int do_get_setelems(struct netlink_ctx *ctx, struct cmd *cmd,
9ff721
 	/* Fetch from kernel the elements that have been requested .*/
9ff721
 	err = netlink_get_setelem(ctx, &cmd->handle, &cmd->location,
9ff721
 				  table, new_set, init);
9ff721
-	if (err < 0)
9ff721
-		return err;
9ff721
-
9ff721
-	__do_list_set(ctx, cmd, table, new_set);
9ff721
+	if (err >= 0)
9ff721
+		__do_list_set(ctx, cmd, table, new_set);
9ff721
 
9ff721
 	if (set->flags & NFT_SET_INTERVAL)
9ff721
 		expr_free(init);
9ff721
 
9ff721
 	set_free(new_set);
9ff721
 
9ff721
-	return 0;
9ff721
+	return err;
9ff721
 }
9ff721
 
9ff721
 static int do_command_get(struct netlink_ctx *ctx, struct cmd *cmd)
9ff721
-- 
bacbc8
2.21.0
9ff721