Allocate and clear the correct number of bytes for a
struct fd_set that should be able to hold sock + 1 bits. Before, it was apparently assumed that an fd_mask has the same size as type char. PR: bin/39617 Reported by: Peter N Lewis <peter@stairways.com.au>
This commit is contained in:
parent
a8ea4bbfd1
commit
594ec288d5
@ -906,9 +906,9 @@ wait_for_reply(register int sock, register struct sockaddr_in *fromp,
|
||||
int fromlen = sizeof(*fromp);
|
||||
|
||||
nfds = howmany(sock + 1, NFDBITS);
|
||||
if ((fdsp = malloc(nfds)) == NULL)
|
||||
if ((fdsp = malloc(nfds * sizeof(fd_mask))) == NULL)
|
||||
err(1, "malloc");
|
||||
memset(fdsp, 0, nfds);
|
||||
memset(fdsp, 0, nfds * sizeof(fd_mask));
|
||||
FD_SET(sock, fdsp);
|
||||
|
||||
wait.tv_sec = tp->tv_sec + waittime;
|
||||
|
Loading…
Reference in New Issue
Block a user