Release still reachable memory if the smbclient context is freed.
authorAndreas Schneider <anschneider@suse.de>
Tue, 15 Jul 2008 12:57:32 +0000 (14:57 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 16 Jul 2008 00:13:17 +0000 (17:13 -0700)
Signed-off-by: Andreas Schneider <anschneider@suse.de>
(This used to be commit 7a65053bc8579b4f56045fb2c658a91a4af0dfea)

source3/libsmb/libsmb_context.c

index 51948d16487b8673cd768821d4d6629d5c9a60c4..114f775086bd224f4238a2d93ff1828e57158986 100644 (file)
@@ -200,6 +200,22 @@ smbc_free_context(SMBCCTX *context,
         smbc_setUser(context, NULL);
         
         DEBUG(3, ("Context %p successfully freed\n", context));
+
+       gfree_names();
+       gfree_loadparm();
+       gfree_case_tables();
+       gfree_charcnv();
+       gfree_interfaces();
+
+       gencache_shutdown();
+       secrets_shutdown();
+
+       /* release the talloc null_context memory last */
+       talloc_disable_null_tracking();
+
+       gfree_debugsyms();
+
+        SAFE_FREE(context->internal);
         SAFE_FREE(context);
         return 0;
 }
@@ -411,6 +427,9 @@ smbc_init_context(SMBCCTX *context)
         char *user = NULL;
         char *home = NULL;
         
+        /* track talloc null_context memory */
+        talloc_enable_null_tracking();
+
         if (!context) {
                 errno = EBADF;
                 return NULL;