From 21c29c49745c7d88df482cb2d2b0353e1aa3f19c Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 8 Oct 2000 18:37:08 +0000 Subject: [PATCH] (loop): check that the socket fd is not too large to select on git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9111 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kdc/connect.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kdc/connect.c b/kdc/connect.c index 763a7170c..1f44aec1f 100644 --- a/kdc/connect.c +++ b/kdc/connect.c @@ -738,8 +738,9 @@ loop(void) int min_free = -1; int max_fd = 0; int i; + FD_ZERO(&fds); - for(i = 0; i < ndescr; i++){ + for(i = 0; i < ndescr; i++) { if(d[i].s >= 0){ if(d[i].type == SOCK_STREAM && d[i].timeout && d[i].timeout < time(NULL)) { @@ -750,8 +751,10 @@ loop(void) } if(max_fd < d[i].s) max_fd = d[i].s; + if (max_fd >= FD_SETSIZE) + krb5_errx(context, 1, "fd too large"); FD_SET(d[i].s, &fds); - }else if(min_free < 0 || i < min_free) + } else if(min_free < 0 || i < min_free) min_free = i; } if(min_free == -1){