From: Timo Sirainen Date: Sun, 2 Aug 2009 17:53:32 +0000 (-0400) Subject: lib_deinit() now frees memory used by env_put(). X-Git-Tag: 2.0.alpha1~340 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e8c29d12e0e75ca35a64f0a0d096ad44248b206f;p=thirdparty%2Fdovecot%2Fcore.git lib_deinit() now frees memory used by env_put(). --HG-- branch : HEAD --- diff --git a/src/lib/env-util.c b/src/lib/env-util.c index 3637c3e558..6c9548046c 100644 --- a/src/lib/env-util.c +++ b/src/lib/env-util.c @@ -99,3 +99,9 @@ void env_backup_free(struct env_backup **_env) *_env = NULL; pool_unref(&env->pool); } + +void env_deinit(void) +{ + if (env_pool != NULL) + pool_unref(&env_pool); +} diff --git a/src/lib/env-util.h b/src/lib/env-util.h index aed153906b..44107f8ed5 100644 --- a/src/lib/env-util.h +++ b/src/lib/env-util.h @@ -16,4 +16,8 @@ void env_backup_restore(struct env_backup *env); /* Free the memory used by environment backup. */ void env_backup_free(struct env_backup **env); +/* Free all memory used by env_put() function. Environment must not be + accessed afterwards. */ +void env_deinit(void); + #endif diff --git a/src/lib/lib.c b/src/lib/lib.c index 0380a42ade..8d7d54a1a2 100644 --- a/src/lib/lib.c +++ b/src/lib/lib.c @@ -1,6 +1,7 @@ /* Copyright (c) 2001-2009 Dovecot authors, see the included COPYING file */ #include "lib.h" +#include "env-util.h" #include "hostpid.h" #include @@ -28,5 +29,6 @@ void lib_init(void) void lib_deinit(void) { data_stack_deinit(); - failures_deinit(); + env_deinit(); + failures_deinit(); }