$NetBSD: patch-ab,v 1.1 2004/07/02 13:14:28 jmmv Exp $ --- cipher/rndunix.c.orig 2003-12-11 16:43:01.000000000 +0100 +++ cipher/rndunix.c @@ -676,6 +676,15 @@ start_gatherer( int pipefd ) if( i != n1 && i != n2 && i != pipefd ) close(i); } + + /* Reopen standard files (only if needed) so that NetBSD does not + complain about executing set[ug]id programs with descriptors 0 + and/or 1 closed. At this point, 2 is still open. */ + if ((i = open("/dev/null", O_RDONLY)) != STDIN_FILENO) + close(i); + if ((i = open("/dev/null", O_WRONLY)) != STDOUT_FILENO) + close(i); + errno = 0; } @@ -703,6 +712,10 @@ start_gatherer( int pipefd ) #endif fclose(stderr); /* Arrghh!! It's Stuart code!! */ + { + int i = open("/dev/null", O_WRONLY); + assert(i == STDERR_FILENO); + } for(;;) { GATHER_MSG msg;