opensssl 1.1.1g test failure(s)

Kurt Roeckx kurt at roeckx.be
Sat Apr 25 22:00:21 UTC 2020


On Wed, Apr 22, 2020 at 11:02:47AM +0200, Michael Tuexen wrote:
> > On 22. Apr 2020, at 10:38, Matt Caswell <matt at openssl.org> wrote:
> > 
> > 
> > 
> > On 21/04/2020 23:45, Michael Tuexen wrote:
> >>> Looks like the failing call is here:
> >>> 
> >>>       if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
> >>>                      (const void *)&on, sizeof(on)) != 0) {
> >> Can you provide a pointer to the code?
> > 
> > Yes, its here:
> > 
> > https://github.com/openssl/openssl/blob/fa555aa8970260c3e198d91709b2d4b3e40f8fa8/crypto/bio/b_sock2.c#L267-L282
> OK. Thanks.
> 
> Could it be that on == 0, when you do the setsockopt() call? Disabling IPV6_V6ONLY seems not to be supported
> on OpenBSD:

Yes:
    if (BIO_ADDR_family(addr) == AF_INET6) {
        /*
         * Note: Windows default of IPV6_V6ONLY is ON, and Linux is OFF.
         * Therefore we always have to use setsockopt here.
         */
        on = options & BIO_SOCK_V6_ONLY ? 1 : 0;
        if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
                       (const void *)&on, sizeof(on)) != 0) {

So something is calling BIO_listen without setting BIO_SOCK_V6_ONLY
in options. All calling functions really should set BIO_SOCK_V6_ONLY
if they actually support multiple sockets, and they should.


Kurt



More information about the openssl-users mailing list