]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libsmb: Use talloc in trustdom_cache_key
authorVolker Lendecke <vl@samba.org>
Tue, 24 Jan 2017 20:40:42 +0000 (21:40 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Tue, 14 Mar 2017 14:22:12 +0000 (15:22 +0100)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/libsmb/trustdom_cache.c

index 4dcb11667414542a11c6d6f4ace48a7e4e489b38..3bcd3bed1df48c3c112673c8b334a9da69b09802 100644 (file)
  * @return cache key for use in gencache mechanism
  **/
 
-static char* trustdom_cache_key(const char* name)
+static char *trustdom_cache_key(TALLOC_CTX *mem_ctx, const char *name)
 {
-       char* keystr = NULL;
-       asprintf_strupper_m(&keystr, TDOMKEY_FMT, name);
-
-       return keystr;
+       return talloc_asprintf_strupper_m(mem_ctx, TDOMKEY_FMT, name);
 }
 
 
@@ -82,14 +79,14 @@ bool trustdom_cache_store(const char *name, const struct dom_sid *sid)
        DEBUG(5, ("trustdom_store: storing SID %s of domain %s\n",
                  sid_string_dbg(sid), name));
 
-       key = trustdom_cache_key(name);
+       key = trustdom_cache_key(talloc_tos(), name);
 
        /* Generate string representation domain SID */
        sid_to_fstring(sid_string, sid);
 
        ret = gencache_set(key, sid_string,
                           time(NULL) + TRUSTDOM_UPDATE_INTERVAL);
-       SAFE_FREE(key);
+       TALLOC_FREE(key);
        return ret;
 }
 
@@ -115,16 +112,16 @@ bool trustdom_cache_fetch(const char* name, struct dom_sid* sid)
                return False;
 
        /* prepare a key and get the value */
-       key = trustdom_cache_key(name);
+       key = trustdom_cache_key(talloc_tos(), name);
        if (!key)
                return False;
 
        if (!gencache_get(key, talloc_tos(), &value, &timeout)) {
                DEBUG(5, ("no entry for trusted domain %s found.\n", name));
-               SAFE_FREE(key);
+               TALLOC_FREE(key);
                return False;
        } else {
-               SAFE_FREE(key);
+               TALLOC_FREE(key);
                DEBUG(5, ("trusted domain %s found (%s)\n", name, value));
        }
 
@@ -200,11 +197,13 @@ static void flush_trustdom_name(const char* key, const char *value, time_t timeo
 
 void trustdom_cache_flush(void)
 {
+       char *key = trustdom_cache_key(talloc_tos(), "*");
        /*
         * iterate through each TDOM cache's entry and flush it
         * by flush_trustdom_name function
         */
-       gencache_iterate(flush_trustdom_name, NULL, trustdom_cache_key("*"));
+       gencache_iterate(flush_trustdom_name, NULL, key);
+       TALLOC_FREE(key);
        DEBUG(5, ("Trusted domains cache flushed\n"));
 }