s3:idmap_autorid: add a talloc_stackframe() to idmap_autorid_initialize()
authorMichael Adam <obnox@samba.org>
Tue, 7 Jun 2011 13:16:24 +0000 (15:16 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 7 Jun 2011 13:55:07 +0000 (15:55 +0200)
source3/winbindd/idmap_autorid.c

index 1f4af335106e11d423a62367aaa18210568a7c33..92cc9bcb00d6413a0f8dd59f214b6b0149bab4bc 100644 (file)
@@ -435,11 +435,13 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
        struct autorid_global_config *storedconfig = NULL;
        NTSTATUS status;
        uint32_t hwm;
+       TALLOC_CTX *frame = talloc_stackframe();
 
-       config = TALLOC_ZERO_P(dom, struct autorid_global_config);
+       config = TALLOC_ZERO_P(frame, struct autorid_global_config);
        if (!config) {
                DEBUG(0, ("Out of memory!\n"));
-               return NT_STATUS_NO_MEMORY;
+               status = NT_STATUS_NO_MEMORY;
+               goto error;
        }
 
        status = idmap_autorid_db_init();
@@ -480,7 +482,7 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
                   config->minvalue, config->rangesize, config->maxranges));
 
        /* read previously stored config and current HWM */
-       storedconfig = idmap_autorid_loadconfig(talloc_tos());
+       storedconfig = idmap_autorid_loadconfig(frame);
 
        if (!dbwrap_fetch_uint32(autorid_db, HWM, &hwm)) {
                DEBUG(1, ("Fatal error while fetching current "
@@ -530,8 +532,7 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
        return NT_STATUS_OK;
 
       error:
-       talloc_free(config);
-       talloc_free(storedconfig);
+       talloc_free(frame);
 
        return status;
 }