From 594ec288d5a81032257d4d24a27997d36d2d1470 Mon Sep 17 00:00:00 2001 From: robert Date: Sun, 23 Jun 2002 21:54:18 +0000 Subject: 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 --- contrib/traceroute/traceroute.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'contrib') diff --git a/contrib/traceroute/traceroute.c b/contrib/traceroute/traceroute.c index 8cfbfe3..487b7db 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; -- cgit v1.1