]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Memory leak fixed due to accumulation of open reg keys.
authorscudette@gmail.com <scudette@gmail.com>
Fri, 2 Jan 2009 11:40:32 +0000 (22:40 +1100)
committerVolker Lendecke <vl@samba.org>
Fri, 2 Jan 2009 19:55:20 +0000 (20:55 +0100)
source4/lib/registry/tools/regtree.c

index cca009a0e2c95f7d853ab6f62ab90789d00342c9..948ed49312d4eecfef143f23759c7e0a483ecd7e 100644 (file)
@@ -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);