X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fpager.c;h=1c1cf1605a1db7db71ba0f90ab993a584f60a387;hp=d6474030c444d312d366f8faef04c7100bfa44de;hb=c08fa87433a5cb3fefefcadb570d03fc6f83dfbb;hpb=2fa742f34291f19d73e6c8d575f97946b8c941e7 diff --git a/src/shared/pager.c b/src/shared/pager.c index d6474030c..1c1cf1605 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -129,6 +129,8 @@ int pager_open(bool jump_to_end) { /* Return in the parent */ if (dup2(fd[1], STDOUT_FILENO) < 0) return log_error_errno(errno, "Failed to duplicate pager pipe: %m"); + if (dup2(fd[1], STDERR_FILENO) < 0) + return log_error_errno(errno, "Failed to duplicate pager pipe: %m"); safe_close_pair(fd); return 1; @@ -141,6 +143,11 @@ void pager_close(void) { /* Inform pager that we are done */ fclose(stdout); + stdout = NULL; + + fclose(stderr); + stderr = NULL; + kill(pager_pid, SIGCONT); (void) wait_for_terminate(pager_pid, NULL); pager_pid = 0;