[PATCH] fix mem leak in ltdb_index_dn_base and ltdb_search_indexed

Andrej Gessel andrej.gessel at janztec.com
Fri Aug 3 07:15:46 UTC 2018


Hello list,

I found some more mem leaks, that I missed last time.

Please review.


PS: I'm searching for mem leaks, because dreplsrv on RODC with samba 
4.8.3 was killed because of oom, so I'm trying to fogure out where 
memory is lost and why it's happening.


Andrej

-------------- next part --------------
From fe22d95ec08e2c57546d035f1e941a2905121b14 Mon Sep 17 00:00:00 2001
From: Andrej Gessel <Andrej.Gessel at janztec.com>
Date: Mon, 16 Jul 2018 11:39:05 +0200
Subject: [PATCH] fix mem leak in ltdb_index_dn_base_dn and ltdb_search_indexed

Signed-off-by: Andrej Gessel <Andrej.Gessel at janztec.com>
---
 lib/ldb/ldb_key_value/ldb_kv_index.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/ldb/ldb_key_value/ldb_kv_index.c b/lib/ldb/ldb_key_value/ldb_kv_index.c
index 550f4b6..8153201 100644
--- a/lib/ldb/ldb_key_value/ldb_kv_index.c
+++ b/lib/ldb/ldb_key_value/ldb_kv_index.c
@@ -1666,6 +1666,7 @@ static int ldb_kv_index_dn_base_dn(struct ldb_module *module,
 		dn_list->dn[0].data = discard_const_p(unsigned char,
 						      ldb_dn_get_linearized(base_dn));
 		if (dn_list->dn[0].data == NULL) {
+			talloc_free(dn_list->dn);
 			return ldb_module_oom(module);
 		}
 		dn_list->dn[0].length = strlen((char *)dn_list->dn[0].data);
@@ -2021,6 +2022,7 @@ int ldb_kv_search_indexed(struct ldb_kv_context *ac, uint32_t *match_count)
 			struct dn_list *idx_one_tree_list
 				= talloc_zero(ac, struct dn_list);
 			if (idx_one_tree_list == NULL) {
+				talloc_free(dn_list);
 				return ldb_module_oom(ac->module);
 			}
 
-- 
2.7.4



More information about the samba-technical mailing list