[PATCH] Memory leak fixed due to accumulation of open reg keys.

scudette at gmail.com scudette at gmail.com
Fri Jan 2 11:40:32 GMT 2009


---
 source4/lib/registry/tools/regtree.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/source4/lib/registry/tools/regtree.c b/source4/lib/registry/tools/regtree.c
index cca009a..90f8fc6 100644
--- a/source4/lib/registry/tools/regtree.c
+++ b/source4/lib/registry/tools/regtree.c
@@ -55,13 +55,16 @@ static void print_tree(int level, struct registry_key *p,
 								      &keyname,
 								      NULL,
 								      NULL)); i++) {
-		SMB_ASSERT(strlen(keyname) > 0);
+	
+	        SMB_ASSERT(strlen(keyname) > 0);
 		if (!W_ERROR_IS_OK(reg_open_key(mem_ctx, p, keyname, &subkey)))
-			continue;
+		        continue;
+	  
 		print_tree(level+1, subkey, (fullpath && strlen(name))?
-						talloc_asprintf(mem_ctx, "%s\\%s",
-								name, keyname):
-						keyname, fullpath, novals);
+                                               talloc_asprintf(mem_ctx, "%s\\%s",
+                                                               name, keyname):
+                                               keyname, fullpath, novals);
+		talloc_free(subkey);
 	}
 	talloc_free(mem_ctx);
 
-- 
1.5.4.3



More information about the samba-technical mailing list