diff --git a/net/socket.c b/net/socket.c index b7e01d0fe082..5da8bb1ff8ea 100644 --- a/net/socket.c +++ b/net/socket.c @@ -3528,7 +3528,11 @@ EXPORT_SYMBOL(kernel_accept); int kernel_connect(struct socket *sock, struct sockaddr *addr, int addrlen, int flags) { - return sock->ops->connect(sock, addr, addrlen, flags); + struct sockaddr_storage address; + + memcpy(&address, addr, addrlen); + + return sock->ops->connect(sock, (struct sockaddr *)&address, addrlen, flags); } EXPORT_SYMBOL(kernel_connect);