Make sure close of nonstandard file descriptors is performed
authorZdeněk Salvet <salvet@ics.muni.cz>
Fri, 27 Apr 2007 08:02:11 +0000 (08:02 +0000)
committerZdeněk Salvet <salvet@ics.muni.cz>
Fri, 27 Apr 2007 08:02:11 +0000 (08:02 +0000)
before library routines can acquire one. Fixes bug #25932.

org.glite.lb.server/src/bkserverd.c

index 45e8be3..0ee0389 100644 (file)
@@ -271,6 +271,7 @@ struct clnt_data_t {
 int main(int argc, char *argv[])
 {
        int                                     fd, i;
+       int                     dtablesize;
        struct sockaddr_in      a;
        char                       *mysubj = NULL;
        int                                     opt;
@@ -288,6 +289,9 @@ int main(int argc, char *argv[])
        struct timeval          to;
 
 
+       /* keep this at start of main() ! */
+       dtablesize = getdtablesize();
+       for (fd=3; fd < dtablesize ; fd++) close(fd);
 
        name = strrchr(argv[0],'/');
        if (name) name++; else name = argv[0];
@@ -405,8 +409,6 @@ int main(int argc, char *argv[])
 
        semkey = ftok(pidfile,0);
 
-       if (!debug) for (fd=3; fd<OPEN_MAX; fd++) close(fd);
-
        if (check_mkdir(dumpStorage)) exit(1);
        if (check_mkdir(purgeStorage)) exit(1);
        if ( jpreg ) {