Skip to content

Commit 41bbb51

Browse files
rluboscarlescufi
authored andcommitted
net: sockets: Fix uninitialized variable use in accept userspace check
Prevent local "addrlen_copy" variable from being used uninitialized in accept() userspace verification function. Signed-off-by: Robert Lubos <[email protected]>
1 parent 7f10bd6 commit 41bbb51

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

subsys/net/lib/sockets/sockets.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,9 +639,10 @@ static inline int z_vrfy_zsock_accept(int sock, struct sockaddr *addr,
639639

640640
Z_OOPS(addrlen && z_user_from_copy(&addrlen_copy, addrlen,
641641
sizeof(socklen_t)));
642-
Z_OOPS(addr && Z_SYSCALL_MEMORY_WRITE(addr, addrlen_copy));
642+
Z_OOPS(addr && Z_SYSCALL_MEMORY_WRITE(addr, addrlen ? addrlen_copy : 0));
643643

644-
ret = z_impl_zsock_accept(sock, (struct sockaddr *)addr, &addrlen_copy);
644+
ret = z_impl_zsock_accept(sock, (struct sockaddr *)addr,
645+
addrlen ? &addrlen_copy : NULL);
645646

646647
Z_OOPS(ret >= 0 && addrlen && z_user_to_copy(addrlen, &addrlen_copy,
647648
sizeof(socklen_t)));

0 commit comments

Comments
 (0)