stunnel broken, realpath problem

Jeffrey Walton noloader at gmail.com
Mon Jun 21 03:30:51 CEST 2021


On Sun, Jun 20, 2021 at 5:10 PM Norman Wilson via users
<users at lists.opencsw.org> wrote:
>
>
> The Solaris 10 i386 stunnel package in unstable,
> CSWstunnel 5.50,REV=2018.12.03, doesn't work.  It cannot
> read any configuration file, always reporting
>
> [!] Invalid configuration file name "/etc/opt/csw/stunnel/stunnel.conf"
> [!] realpath: Invalid argument (22)
>
> to standard error on startup (with whatever filename you specify,
> of course).
>
> I suspect the SPARC version is affected the same way, but I can't
> easily test that at the moment.
>
> The trouble is with realpath(3c).  Modern versions (including in
> Solaris 11, I think) allow calls like s = realpath(p, NULL) to
> mean realpath should malloc a buffer for the result; Solaris 10
> realpath fails with EINVAL instead.  stunnel calls realpath with
> second argument NULL, and doesn't expect the error.
>
> A simple workaround is to apply a manual hack while building:
>
> ./configure
> ed src/config.h <<!
> /HAVE_REALPATH/d
> w
> q
> !
>
> i.e. remove the symbol configure made to assert that stunnel
> may use realpath.
>
> I fetched stunnel 5.59 (the latest version) directly from
> www.stunnel.org, built it with that hack interposed, and all
> is well.
>
> There are probably more-graceful ways to fix this (maybe there's
> an argument to ./configure to tell it to do that? maybe a simple
> patch to configure.ac?).  Or maybe it's just not worth fixing,
> since the bug has probably been there quite a while, and it
> only affects Solaris 10.  I'm working to move to a newer OS
> version myself, so it won't hurt my feelings if you decide to
> let sleeping stunnels lie.  But here it is if it's worth doing.

Re: configure and confgiure.ac, you can disable the realpath function
at configure time with:

    ./configure \
        <your standard options> \
        ac_cv_realpath=no

You have to use that trick on occasion, like when configuring cURL.
cURL enables SSLv2 and SSLv3 by default and without a --disable-*
option. For curl, they look like ac_cv_func_SSLv2_client_method=no and
ac_cv_func_SSLv3_client_method=no.

Jeff


More information about the users mailing list