From c02ed215b8a1936bb8bc76b568dd70c0980f84ac Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 8 Oct 2000 13:22:19 +0000 Subject: [PATCH] (doit_passive): check that fds are not too large to select on git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9101 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/kx/kxd.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/appl/kx/kxd.c b/appl/kx/kxd.c index 593b94abc..b95dd8bee 100644 --- a/appl/kx/kxd.c +++ b/appl/kx/kxd.c @@ -493,9 +493,21 @@ doit_passive (kx_context *kc, int cookiesp = TRUE; FD_ZERO(&fds); + if (sock >= FD_SETSIZE) { + syslog (LOG_ERR, "fd too large"); + cleanup(nsockets, sockets); + return 1; + } + FD_SET(sock, &fds); - for (i = 0; i < nsockets; ++i) + for (i = 0; i < nsockets; ++i) { + if (sockets[i].fd >= FD_SETSIZE) { + syslog (LOG_ERR, "fd too large"); + cleanup(nsockets, sockets); + return 1; + } FD_SET(sockets[i].fd, &fds); + } ret = select(FD_SETSIZE, &fds, NULL, NULL, NULL); if(ret <= 0) continue;