s3:net: registry export: close key after recursion returns
authorGregor Beck <gbeck@sernet.de>
Mon, 30 May 2011 07:31:21 +0000 (09:31 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 9 Aug 2011 14:57:50 +0000 (16:57 +0200)
Signed-off-by: Michael Adam <obnox@samba.org>
source3/utils/net_registry.c

index 0acd8c4c3089b9848024c6da14921af5dab45912..086c4e7ccc30d99640a82b0ac5ada0a9189c594d 100644 (file)
@@ -1102,7 +1102,6 @@ static int registry_export(TALLOC_CTX *ctx, /*const*/ struct registry_key* key,
        struct registry_value *valvalue = NULL;
        char *valname = NULL;
 
-       struct registry_key* subkey = NULL;
        char *subkey_name = NULL;
        NTTIME modtime = 0;
 
@@ -1128,6 +1127,8 @@ static int registry_export(TALLOC_CTX *ctx, /*const*/ struct registry_key* key,
                     W_ERROR_IS_OK(werr);
             count++)
        {
+               struct registry_key* subkey = NULL;
+
                werr = reg_openkey(ctx, key, subkey_name, REG_KEY_READ,
                                   &subkey);
                if (!W_ERROR_IS_OK(werr)) {
@@ -1137,6 +1138,7 @@ static int registry_export(TALLOC_CTX *ctx, /*const*/ struct registry_key* key,
                }
 
                registry_export(ctx, subkey, f);
+               TALLOC_FREE(subkey);
        }
        if (!W_ERROR_EQUAL(WERR_NO_MORE_ITEMS, werr)) {
                d_fprintf(stderr, _("reg_enumkey failed: %s\n"),