Blame SOURCES/0009-segtree-memleak-in-get_set_decompose.patch
|
|
9ff721 |
From b18f069971e8e5c161e87ad1742b677ee4185bad Mon Sep 17 00:00:00 2001
|
|
|
9ff721 |
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
|
9ff721 |
Date: Wed, 3 Oct 2018 12:16:40 +0200
|
|
|
9ff721 |
Subject: [PATCH] segtree: memleak in get_set_decompose()
|
|
|
9ff721 |
|
|
|
9ff721 |
Release set content on error. Moreover, release input set content in
|
|
|
9ff721 |
case we finally manage to decompose it.
|
|
|
9ff721 |
|
|
|
9ff721 |
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
|
9ff721 |
(cherry picked from commit e08c8bbfeda80f3807ce3784558ce1fb6f0d2bc8)
|
|
|
9ff721 |
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
|
9ff721 |
---
|
|
|
9ff721 |
src/segtree.c | 2 ++
|
|
|
9ff721 |
1 file changed, 2 insertions(+)
|
|
|
9ff721 |
|
|
|
9ff721 |
diff --git a/src/segtree.c b/src/segtree.c
|
|
|
9ff721 |
index 0d53c83fd837e..dc2554b72acf3 100644
|
|
|
9ff721 |
--- a/src/segtree.c
|
|
|
9ff721 |
+++ b/src/segtree.c
|
|
|
9ff721 |
@@ -727,6 +727,7 @@ int get_set_decompose(struct table *table, struct set *set)
|
|
|
9ff721 |
range = get_set_interval_find(table, set->handle.set.name,
|
|
|
9ff721 |
left, i);
|
|
|
9ff721 |
if (!range) {
|
|
|
9ff721 |
+ expr_free(new_init);
|
|
|
9ff721 |
errno = ENOENT;
|
|
|
9ff721 |
return -1;
|
|
|
9ff721 |
}
|
|
|
9ff721 |
@@ -755,6 +756,7 @@ int get_set_decompose(struct table *table, struct set *set)
|
|
|
9ff721 |
compound_expr_add(new_init, expr_clone(left));
|
|
|
9ff721 |
}
|
|
|
9ff721 |
|
|
|
9ff721 |
+ expr_free(set->init);
|
|
|
9ff721 |
set->init = new_init;
|
|
|
9ff721 |
|
|
|
9ff721 |
return 0;
|
|
|
9ff721 |
--
|
|
|
bacbc8 |
2.21.0
|
|
|
9ff721 |
|