X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=fd.c;h=c675aaffd4b99083d3ab0e26445574c2b87ad51b;hb=40de1dd2fdbb054444d585aa70e2d50166a66e07;hp=d0b5c895a5f25d02b9f566fbe693a38898057203;hpb=07dd05be81f44b0af666a8bccf0a19ffff371db1;p=paraslash.git diff --git a/fd.c b/fd.c index d0b5c895..c675aaff 100644 --- a/fd.c +++ b/fd.c @@ -427,3 +427,24 @@ again: goto again; return ret; } + +/** + * Ensure that file descriptors 0, 1, and 2 are valid. + * + * Common approach that opens /dev/null until it gets a file descriptor greater + * than two. + * + * \sa okir's Black Hats Manual. + */ +void valid_fd_012(void) +{ + while (1) { + int fd = open("/dev/null", O_RDWR); + if (fd < 0) + exit(EXIT_FAILURE); + if (fd > 2) { + close(fd); + break; + } + } +}