diff --git a/src/log.c b/src/log.c index 39c1d0442..1405ba301 100644 --- a/src/log.c +++ b/src/log.c @@ -42,7 +42,11 @@ static const char *err_filename; /* redirect stdin to /dev/null to work around a libao bug */ static void redirect_stdin(void) { - int fd; + int fd, st; + struct stat ss; + + if ((st = fstat(STDIN_FILENO, &ss)) < 0 || ! isatty(STDIN_FILENO)) + return; if ((fd = open("/dev/null", O_RDONLY)) < 0) FATAL("failed to open /dev/null %s\n", strerror(errno)); if (dup2(fd, STDIN_FILENO) < 0)