Skip to content

Commit

Permalink
avoid fd_set overrun
Browse files Browse the repository at this point in the history
  • Loading branch information
itojun committed Nov 20, 2002
1 parent 5c1b4cd commit 84bf7dc
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion kame/kame/racoon/session.c
@@ -1,4 +1,4 @@
/* $KAME: session.c,v 1.30 2002/09/27 05:55:53 itojun Exp $ */
/* $KAME: session.c,v 1.31 2002/11/20 02:06:18 itojun Exp $ */

/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
Expand Down Expand Up @@ -204,19 +204,35 @@ initfds()
FD_ZERO(&mask0);

#ifdef ENABLE_ADMINPORT
if (lcconf->sock_admin >= FD_SETSIZE) {
plog(LLV_ERROR, LOCATION, NULL, "fd_set overrun\n");
exit(1);
}
FD_SET(lcconf->sock_admin, &mask0);
nfds = (nfds > lcconf->sock_admin ? nfds : lcconf->sock_admin);
#endif
if (lcconf->sock_pfkey >= FD_SETSIZE) {
plog(LLV_ERROR, LOCATION, NULL, "fd_set overrun\n");
exit(1);
}
FD_SET(lcconf->sock_pfkey, &mask0);
nfds = (nfds > lcconf->sock_pfkey ? nfds : lcconf->sock_pfkey);
if (lcconf->rtsock >= 0) {
if (lcconf->rtsock >= FD_SETSIZE) {
plog(LLV_ERROR, LOCATION, NULL, "fd_set overrun\n");
exit(1);
}
FD_SET(lcconf->rtsock, &mask0);
nfds = (nfds > lcconf->rtsock ? nfds : lcconf->rtsock);
}

for (p = lcconf->myaddrs; p; p = p->next) {
if (!p->addr)
continue;
if (p->sock >= FD_SETSIZE) {
plog(LLV_ERROR, LOCATION, NULL, "fd_set overrun\n");
exit(1);
}
FD_SET(p->sock, &mask0);
nfds = (nfds > p->sock ? nfds : p->sock);
}
Expand Down

0 comments on commit 84bf7dc

Please sign in to comment.