mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-05 17:30:27 +00:00
recvfrom: don't convert address if addrsize is 0
Fixes malformed address being returned for recvfrom on connection oriented sockets.
This commit is contained in:
parent
01267ea0f5
commit
9ee5b5a2f0
1 changed files with 7 additions and 3 deletions
|
@ -84,10 +84,14 @@ ssize_t recvfrom(int fd, void *buf, size_t size, int flags,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rc != -1) {
|
if (rc != -1) {
|
||||||
if (IsBsd()) {
|
if (addrsize) {
|
||||||
__convert_bsd_to_sockaddr(&addr);
|
if (IsBsd()) {
|
||||||
|
__convert_bsd_to_sockaddr(&addr);
|
||||||
|
}
|
||||||
|
__write_sockaddr(&addr, opt_out_srcaddr, opt_inout_srcaddrsize);
|
||||||
|
} else {
|
||||||
|
*opt_inout_srcaddrsize = 0;
|
||||||
}
|
}
|
||||||
__write_sockaddr(&addr, opt_out_srcaddr, opt_inout_srcaddrsize);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
END_CANCELATION_POINT;
|
END_CANCELATION_POINT;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue