diff --git a/libc/sock/recvfrom.c b/libc/sock/recvfrom.c index 27fac1ed6..d3e326f1b 100644 --- a/libc/sock/recvfrom.c +++ b/libc/sock/recvfrom.c @@ -70,6 +70,9 @@ ssize_t recvfrom(int fd, void *buf, size_t size, int flags, if (__isfdkind(fd, kFdSocket)) { rc = sys_recvfrom_nt(fd, (struct iovec[]){{buf, size}}, 1, flags, &addr, &addrsize); + if (rc != -1 && addrsize == sizeof(addr)) { + addrsize = 0; + } } else if (__isfdkind(fd, kFdFile) && !opt_out_srcaddr) { /* socketpair */ if (!flags) { rc = sys_read_nt(fd, (struct iovec[]){{buf, size}}, 1, -1);