Full_Name: Dennis Norgord
Version: mod_ssl-2.6.4-1.3.12
OS: Linux 6.1
Submission from: (NULL) (158.222.45.105)


When modssl is built as a shared object and apache is sent a SIGHUP or a SIGUSR1
signal, modssl leaks memory when it unloads and reloads.

In ssl_engine_init.c, I've taken a stab at cleaning up some of the memory leaks.
 Given that openssl has static variables which contain one time initializations,
I'm not sure what the real solution is.  Is the intention to build modssl as a
static object to avoid these signal related restart memory leaks?

void ssl_init_ModuleKill(void *data)
{
    /*
     * Free the non-pool allocated structures
     * in the per-server configurations
     */
    for (; s != NULL; s = s->next) {
        ...
#ifdef SSL_EXPERIMENTAL_PROXY
        if (sc->pSSLProxyCtx != NULL) {
            SSL_CTX_free(sc->pSSLProxyCtx);  // Potentially large leak
            sc->pSSLProxyCtx = NULL;
        }
#endif

    }

    // Cleanup openssl as much as possible
    ERR_remove_state(0);
    EVP_cleanup();
    OBJ_NAME_cleanup(-1);
    ERR_free_strings();
    if(ERR_get_err_state_table() != NULL)
    {
        lh_free(ERR_get_err_state_table());
    }

    return;
}


______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [EMAIL PROTECTED]
Automated List Manager                            [EMAIL PROTECTED]

Reply via email to