summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2018-06-13 09:44:11 +0000
committerYann Ylavic <ylavic@apache.org>2018-06-13 09:44:11 +0000
commit821e86ce1911d42bae84502a2330bdf72798318e (patch)
tree9822f2c88ac5b16409f280b21b185fe14a2eb8b6 /crypto
parent53c9b2db19544c9e40c986d94e664442a033cae6 (diff)
downloadapr-821e86ce1911d42bae84502a2330bdf72798318e.tar.gz
apr_crypto: follow up to r1833359: reuse crypto_lib_free() code.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1833451 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'crypto')
-rw-r--r--crypto/apr_crypto.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/crypto/apr_crypto.c b/crypto/apr_crypto.c
index 6170825b5..ac8c8d013 100644
--- a/crypto/apr_crypto.c
+++ b/crypto/apr_crypto.c
@@ -340,14 +340,21 @@ static struct crypto_lib *spare_lib_pop(void)
return lib;
}
-static apr_status_t crypto_lib_cleanup(void *arg)
+static apr_status_t crypto_lib_free(struct crypto_lib *lib)
{
- struct crypto_lib *lib = arg;
+ apr_status_t rv;
apr_hash_set(active_libs, lib->name, APR_HASH_KEY_STRING, NULL);
- lib->term();
+ rv = lib->term();
spare_lib_push(lib);
+ return rv;
+}
+
+static apr_status_t crypto_lib_cleanup(void *arg)
+{
+ crypto_lib_free(arg);
+
return APR_SUCCESS;
}
@@ -502,10 +509,8 @@ static apr_status_t crypto_lib_term(const char *name)
#endif
;
if (rv == APR_SUCCESS) {
- apr_hash_set(active_libs, lib->name, APR_HASH_KEY_STRING, NULL);
apr_pool_cleanup_kill(lib->pool, lib, crypto_lib_cleanup);
- rv = lib->term();
- spare_lib_push(lib);
+ rv = crypto_lib_free(lib);
}
return rv;
}