]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Pass proper sockaddr_* structure for IPv6 socket errors.
authorGert Doering <gert@greenie.muc.de>
Fri, 13 May 2022 10:15:26 +0000 (12:15 +0200)
committerGert Doering <gert@greenie.muc.de>
Fri, 13 May 2022 12:17:14 +0000 (14:17 +0200)
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 <gert@greenie.muc.de>
Acked-by: Arne Schwabe <arne@rfc2549.org>
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 <gert@greenie.muc.de>
src/openvpn/mtu.c

index 93feaff18bc8302ebf791d243155ab5fbd49dc0d..84310349da2753db46fd6f2feac6d5ef17b0a2fd 100644 (file)
@@ -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);