Hi,

On Sun, Dec 08, 2024 at 12:17:05AM +0100, corubba via Openvpn-devel wrote:
> getpeername() and getsockname() will truncate the result if it is
> larger than the passed-in length. Because here always the size of the
> `sa` IPv4 union member was passed in, all larger (aka IPv6) results
> were truncated. Instead use the size of the `addr` union, which is the
> maximum size of all union members.

Thanks for digging into this.  The fix looks correct according to
structure definitions, "man getpeername()" etc. - and now matches
other parts of the code, like socket.c / socket_do_accept()

...
    socklen_t remote_len = sizeof(act->dest.addr);
...
        new_sd = getpeername(sd, &act->dest.addr.sa, &remote_len);

The commit ID you found introduces IPv6 transport support :-) - so before
that, there was no ambiguity here.

So

Acked-By: Gert Doering <g...@greenie.muc.de>

will proceed to merge ASAP.  (I'll change the Trac reference to be
just "Trac: #1358" as this is our standard format).

gert
-- 
"If was one thing all people took for granted, was conviction that if you 
 feed honest figures into a computer, honest figures come out. Never doubted 
 it myself till I met a computer with a sense of humor."
                             Robert A. Heinlein, The Moon is a Harsh Mistress

Gert Doering - Munich, Germany                             g...@greenie.muc.de

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to