diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2016-12-07 12:39:24 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2016-12-07 12:39:24 -0500 |
commit | b7e1ae2328f7d5a88d8916d78b4561d8ef16f99b (patch) | |
tree | e6f448b051f8d7e28f1f2b50b4f646915713a9ff | |
parent | 18f8f784cbbf96ef77eb8943b466b26605824c14 (diff) | |
download | postgresql-b7e1ae2328f7d5a88d8916d78b4561d8ef16f99b.tar.gz postgresql-b7e1ae2328f7d5a88d8916d78b4561d8ef16f99b.zip |
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 5c5d285be5f..daa23d1955a 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(); } } |