From 673bce11cedde3cc33c154d2b8e2d41139dcef72 Mon Sep 17 00:00:00 2001 From: Dmitry Chagin Date: Mon, 11 Apr 2022 23:33:27 +0300 Subject: [PATCH] linux(4): Copyout actual size of addr to the user space in accept(). Differential Revision: https://reviews.freebsd.org/D34727 --- sys/compat/linux/linux_socket.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c index 622e25651db..d7e17596fde 100644 --- a/sys/compat/linux/linux_socket.c +++ b/sys/compat/linux/linux_socket.c @@ -1046,11 +1046,9 @@ linux_accept_common(struct thread *td, int s, l_uintptr_t addr, if (len != 0) { error = linux_copyout_sockaddr(sa, PTRIN(addr), len); - - /* - * XXX: We should also copyout the len, shouldn't we? - */ - + if (error == 0) + error = copyout(&len, PTRIN(namelen), + sizeof(len)); if (error != 0) { fdclose(td, fp, td->td_retval[0]); td->td_retval[0] = 0;