On Sat, Apr  7, 2012 at 21:09:33 +0200, Sven Joachim wrote:

> On 2012-04-07 20:39 +0200, Marc Singer wrote:
> 
> > On Sat, Apr 7, 2012 at 10:55 AM, Sven Joachim <svenj...@gmx.de> wrote:
> >>
> >> Apparently shellinaboxd is statically linked with ssl, which is bad.
> 
> Sorry, should have read the build logs more carefully and actually
> peeked in the source code.
> 
> > No, it's dynamically link at runtime which is good.  :-)
> 
> It dlopens libssl.so which is not good, since that file only exists if
> libssl-dev is installed.
> 
> > I'm looking into how to get a Recommends: dependency on libssl without
> > knowing the soname a priori.
> 
> Trick upstream into linking against ssl rather than dlopening it?  Until
> that happens, I don't have a better idea than to patch libhttp/ssl.c:
> 
> --8<---------------cut here---------------start------------->8---
> diff --git a/libhttp/ssl.c b/libhttp/ssl.c
> index f9cb37f..0d39079 100755
> --- a/libhttp/ssl.c
> +++ b/libhttp/ssl.c
> @@ -298,7 +298,7 @@ static void loadSSL(void) {
>      { { &X509_free },                   "X509_free" }
>    };
>    for (unsigned i = 0; i < sizeof(symbols)/sizeof(symbols[0]); i++) {
> -    if (!(*symbols[i].var = loadSymbol("libssl.so", symbols[i].fn))) {
> +    if (!(*symbols[i].var = loadSymbol("libssl.so.1.0.0", symbols[i].fn))) {
>        debug("Failed to load SSL support. Could not find \"%s\"",
>              symbols[i].fn);
>        for (unsigned j = 0; j < sizeof(symbols)/sizeof(symbols[0]); j++) {
> --8<---------------cut here---------------end--------------->8---
> 
> and to add a "Recommends: libssl1.0.0" to debian/control.  Of course,
> this will break on the next libssl soname change.
> 
That stuff's insane.  Please just link against -lssl properly instead of
playing dlopen tricks.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature

Reply via email to