summaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
Diffstat (limited to 'sbin')
-rw-r--r--sbin/isakmpd/monitor.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sbin/isakmpd/monitor.c b/sbin/isakmpd/monitor.c
index e0fffa6c8a0..f6e9e67f0c7 100644
--- a/sbin/isakmpd/monitor.c
+++ b/sbin/isakmpd/monitor.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: monitor.c,v 1.14 2004/03/23 18:20:03 hshoexer Exp $ */
+/* $OpenBSD: monitor.c,v 1.15 2004/03/29 16:32:47 deraadt Exp $ */
/*
* Copyright (c) 2003 Håkan Olsson. All rights reserved.
@@ -539,6 +539,7 @@ monitor_loop (int debugging)
{
pid_t pid;
fd_set *fds;
+ size_t fdsn;
int n, maxfd;
if (!debugging)
@@ -546,7 +547,8 @@ monitor_loop (int debugging)
maxfd = m_state.s + 1;
- fds = (fd_set *)calloc (howmany (maxfd, NFDBITS), sizeof (fd_mask));
+ fdsn = howmany (maxfd, NFDBITS) * sizeof (fd_mask);
+ fds = (fd_set *)calloc (fdsn);
if (!fds)
{
kill (m_state.pid, SIGTERM);
@@ -594,7 +596,7 @@ monitor_loop (int debugging)
monitor_sighupped = 0;
}
- FD_ZERO (fds);
+ memset (fds, 0, fdsn);
FD_SET (m_state.s, fds);
n = select (maxfd, fds, NULL, NULL, NULL);