diff options
author | Tom Lane | 2016-12-07 17:39:24 +0000 |
---|---|---|
committer | Tom Lane | 2016-12-07 17:39:24 +0000 |
commit | b7e1ae2328f7d5a88d8916d78b4561d8ef16f99b (patch) | |
tree | e6f448b051f8d7e28f1f2b50b4f646915713a9ff | |
parent | 18f8f784cbbf96ef77eb8943b466b26605824c14 (diff) |
Restore psql's SIGPIPE setting if popen() fails.
Ancient oversight in PageOutput(): if popen() fails, we'd better reset
the SIGPIPE handler before returning stdout, because ClosePager() won't.
Noticed while fixing the empty-PAGER issue.
-rw-r--r-- | src/fe_utils/print.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/fe_utils/print.c b/src/fe_utils/print.c index 5c5d285be5..daa23d1955 100644 --- a/src/fe_utils/print.c +++ b/src/fe_utils/print.c @@ -2884,6 +2884,8 @@ PageOutput(int lines, const printTableOpt *topt) pagerpipe = popen(pagerprog, "w"); if (pagerpipe) return pagerpipe; + /* if popen fails, silently proceed without pager */ + restore_sigpipe_trap(); } } |