From: Gert Doering Date: Fri, 13 May 2022 10:15:26 +0000 (+0200) Subject: Pass proper sockaddr_* structure for IPv6 socket errors. X-Git-Tag: v2.6_beta1~199 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c96249696cf6d6217443bc93f8208571f289623e;p=thirdparty%2Fopenvpn.git Pass proper sockaddr_* structure for IPv6 socket errors. commit 043c67f363429 enhances format_extended_socket_error() by recognizing IPv6 extended socket errors, but neglected to change the "sockaddr_in" buffer passed to recvmsg() to "sockaddr_storage". According to documentation, recvmsg() should not have overrun that buffer (we pass the size of the struct), but according to ASAN it does... so, pass a pointer to the correct structure. Signed-off-by: Gert Doering Acked-by: Arne Schwabe Message-Id: <20220513101526.11486-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg24352.html Signed-off-by: Gert Doering --- diff --git a/src/openvpn/mtu.c b/src/openvpn/mtu.c index 93feaff18..84310349d 100644 --- a/src/openvpn/mtu.c +++ b/src/openvpn/mtu.c @@ -312,7 +312,7 @@ format_extended_socket_error(int fd, int *mtu, struct gc_arena *gc) struct msghdr msg; struct cmsghdr *cmsg; struct sock_extended_err *e; - struct sockaddr_in addr; + struct sockaddr_storage addr; struct buffer out = alloc_buf_gc(256, gc); char *cbuf = (char *) gc_malloc(256, false, gc);