diff options
author | Robert Drehmel <robert@FreeBSD.org> | 2002-06-23 21:54:18 +0000 |
---|---|---|
committer | Robert Drehmel <robert@FreeBSD.org> | 2002-06-23 21:54:18 +0000 |
commit | eac66622a00b48f7b12fe4967484dd10243c94e0 (patch) | |
tree | fb30d10bc5852b56757be26de2c7e7498cad5a0f /contrib/traceroute/traceroute.c | |
parent | 223071e10e62bbb14896f09c8cc847ea93af5dfa (diff) | |
download | src-eac66622a00b48f7b12fe4967484dd10243c94e0.tar.gz src-eac66622a00b48f7b12fe4967484dd10243c94e0.zip |
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>
Notes
Notes:
svn path=/head/; revision=98709
Diffstat (limited to 'contrib/traceroute/traceroute.c')
-rw-r--r-- | contrib/traceroute/traceroute.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/traceroute/traceroute.c b/contrib/traceroute/traceroute.c index 8cfbfe3dbc01..487b7dbaed0f 100644 --- a/contrib/traceroute/traceroute.c +++ b/contrib/traceroute/traceroute.c @@ -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; |