Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 May 2018 16:08:13 +0300
From:      David Gessel <gessel@blackrosetech.com>
To:        freebsd-net <freebsd-net@freebsd.org>
Subject:   LibreSSL 2.7.2+ errors, last vexing one Apache24 fails with Cannot load libexec/apache24/mod_ssl.so Undefined symbol "OPENSSL_malloc_init"
Message-ID:  <af9c71ce-418c-6ddd-c29a-a03b498f7293@blackrosetech.com>

next in thread | raw e-mail | index | archive | help


LibreSSL 2.7+ is a big change and it caused a host of issues for me, most of which I've resolved with the patches posted on the LibreSSL wiki at https://wiki.freebsd.org/LibreSSL/2.7, but www/apache24 is still refusing to start post-update (the port was patched for LibreSSL on 24 Mar with 2.4.33)

my env:
apache24-2.4.33
libressl-2.7.2_1
FreeBSD 10.3-RELEASE-p28 #0 r330946
(portmaster)


When I try # apachectl restart I get:

Apache24 will not start:
httpd: Syntax error on line 130 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/mod_ssl.so into server: /usr/local/libexec/apache24/mod_ssl.so: Undefined symbol "OPENSSL_malloc_init"

The following innocuous seeming error reported during the build seems relevant

--- mod_ssl.slo ---
mod_ssl.c:404:5: warning: implicit declaration of function 'OPENSSL_malloc_init' is invalid in C99 [-Wimplicit-function-declaration]
OPENSSL_malloc_init();


mod_ssl.c: ± 405:
C:

    /* We must register the library in full, to ensure our configuration
     * code can successfully test the SSL environment.
     */
#if MODSSL_USE_OPENSSL_PRE_1_1_API
    (void)CRYPTO_malloc_init();
#else
    OPENSSL_malloc_init();
#endif
    ERR_load_crypto_strings();
    SSL_load_error_strings();
    SSL_library_init();
#if HAVE_ENGINE_LOAD_BUILTIN_ENGINES
    ENGINE_load_builtin_engines();
#endif
    OpenSSL_add_all_algorithms();
    OPENSSL_load_builtin_modules();

I don't see a declaration in mod_ssl.h. I believe the function is declared in OPENSSL_malloc, e.g. int OPENSSL_malloc_init(void) and that maybe the latest version of LibreSSL replaced the OpenSSL code that contained this declaration without replacing it. Or something like that. Maybe.

Any hints?

Also posted at
https://bz.apache.org/bugzilla/show_bug.cgi?id=62346
and
https://forums.freebsd.org/threads/apache24-fails-after-libressl-2-7-2-mod_ssl-so-undefined-symbol-openssl_malloc_init.65701/




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?af9c71ce-418c-6ddd-c29a-a03b498f7293>