The branch main has been updated by dchagin:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=673bce11cedde3cc33c154d2b8e2d41139dcef72

commit 673bce11cedde3cc33c154d2b8e2d41139dcef72
Author:     Dmitry Chagin <dcha...@freebsd.org>
AuthorDate: 2022-04-11 20:33:27 +0000
Commit:     Dmitry Chagin <dcha...@freebsd.org>
CommitDate: 2022-04-11 20:33:27 +0000

    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 622e25651dbb..d7e17596fde1 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;

Reply via email to