Commit 695e8b39 authored by Doug MacEachern's avatar Doug MacEachern
Browse files

cleanup the proxy context


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/ssl@94288 13f79535-47bb-0310-9956-ffa450edef68
parent df4a1739
Loading
Loading
Loading
Loading
+33 −13
Changes for ssl_engine_init.c: 33 added lines, 13 removed lines.
Original line number Diff line number Diff line
@@ -1118,6 +1118,37 @@ void ssl_init_Child(apr_pool_t *p, server_rec *s)
        item = NULL; \
    }

static void ssl_init_ctx_cleanup(modssl_ctx_t *mctx)
{
    MODSSL_CFG_ITEM_FREE(X509_STORE_free, mctx->crl);

    MODSSL_CFG_ITEM_FREE(SSL_CTX_free, mctx->ssl_ctx);
}

static void ssl_init_ctx_cleanup_proxy(modssl_ctx_t *mctx)
{
    ssl_init_ctx_cleanup(mctx);

    if (mctx->pkp->certs) {
        sk_X509_INFO_pop_free(mctx->pkp->certs, X509_INFO_free);
    }
}

static void ssl_init_ctx_cleanup_server(modssl_ctx_t *mctx)
{
    int i;

    ssl_init_ctx_cleanup(mctx);

    for (i=0; i < SSL_AIDX_MAX; i++) {
        MODSSL_CFG_ITEM_FREE(X509_free,
                             mctx->pks->certs[i]);

        MODSSL_CFG_ITEM_FREE(EVP_PKEY_free,
                             mctx->pks->keys[i]);
    }
}

apr_status_t ssl_init_ModuleKill(void *data)
{
    SSLSrvConfigRec *sc;
@@ -1139,22 +1170,11 @@ apr_status_t ssl_init_ModuleKill(void *data)
     * in the per-server configurations
     */
    for (s = base_server; s; s = s->next) {
        int i;
        sc = mySrvConfig(s);

        for (i=0; i < SSL_AIDX_MAX; i++) {
            MODSSL_CFG_ITEM_FREE(X509_free,
                                 sc->server->pks->certs[i]);

            MODSSL_CFG_ITEM_FREE(EVP_PKEY_free,
                                 sc->server->pks->keys[i]);
        }

        MODSSL_CFG_ITEM_FREE(X509_STORE_free,
                             sc->server->crl);
        ssl_init_ctx_cleanup_proxy(sc->proxy);

        MODSSL_CFG_ITEM_FREE(SSL_CTX_free,
                             sc->server->ssl_ctx);
        ssl_init_ctx_cleanup_server(sc->server);
    }

    /*
+1 −0
Changes for ssl_toolkit_compat.h: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -162,6 +162,7 @@
#define sk_X509_num sk_num
#define sk_X509_value (X509 *)sk_value
#define sk_X509_INFO_value (X509_INFO *)sk_value
#define sk_X509_INFO_pop_free sk_pop_free 
#define sk_X509_INFO_num sk_num
#define sk_X509_INFO_new_null sk_new_null
#define sk_X509_NAME_num sk_num