X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=src%2Fuserplex.c;h=b66490f1ac57fdd34e9bfd8b04e380cc6d8470cf;hp=3a2da874512f4760bcfbdc69bcc3f0291955ced9;hb=470938bdc9149ae9c7befd0cd983f46fcc056192;hpb=0c345c82fe0465b7e92076b90e3132ae3b6eba98 diff --git a/src/userplex.c b/src/userplex.c index 3a2da87..b66490f 100644 --- a/src/userplex.c +++ b/src/userplex.c @@ -112,7 +112,7 @@ static int forkchild(char *usrnm) { struct passwd *pwd; pid_t pid; - int i, fd[2]; + int fd[2]; /* XXX: There should be a way for the child to report errors (like * 404 when htpub doesn't exist), but for now I don't bother with @@ -126,17 +126,15 @@ static int forkchild(char *usrnm) if((pid = fork()) < 0) return(-1); if(pid == 0) { - for(i = 3; i < FD_SETSIZE; i++) { - if(i != fd[0]) - close(i); - } dup2(fd[0], 0); close(fd[0]); + close(fd[1]); login(pwd); execchild(pwd); exit(127); } close(fd[0]); + fcntl(fd[1], F_SETFD, FD_CLOEXEC); return(fd[1]); }