s3:lib/memcache: make use of talloc for memcache_elements
authorStefan Metzmacher <metze@samba.org>
Thu, 17 Jul 2014 10:48:51 +0000 (12:48 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 18 Jul 2014 11:16:04 +0000 (13:16 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/lib/memcache.c

index fe38c9d6281208a3b81613f9e9f5365bf541feaf..0f0538fa88169808992241b7efe1d2a577c93ac1 100644 (file)
@@ -63,7 +63,7 @@ static int memcache_destructor(struct memcache *cache) {
 
        for (e = cache->mru; e != NULL; e = next) {
                next = e->next;
-               SAFE_FREE(e);
+               TALLOC_FREE(e);
        }
        return 0;
 }
@@ -206,7 +206,7 @@ static void memcache_delete_element(struct memcache *cache,
 
        cache->size -= memcache_element_size(e->keylength, e->valuelength);
 
-       SAFE_FREE(e);
+       TALLOC_FREE(e);
 }
 
 static void memcache_trim(struct memcache *cache)
@@ -285,13 +285,12 @@ void memcache_add(struct memcache *cache, enum memcache_number n,
 
        element_size = memcache_element_size(key.length, value.length);
 
-
-       e = (struct memcache_element *)SMB_MALLOC(element_size);
-
+       e = talloc_size(cache, element_size);
        if (e == NULL) {
-               DEBUG(0, ("malloc failed\n"));
+               DEBUG(0, ("talloc failed\n"));
                return;
        }
+       talloc_set_type(e, struct memcache_element);
 
        e->n = n;
        e->keylength = key.length;