aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-12-07 12:39:24 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2016-12-07 12:39:24 -0500
commitb7e1ae2328f7d5a88d8916d78b4561d8ef16f99b (patch)
treee6f448b051f8d7e28f1f2b50b4f646915713a9ff
parent18f8f784cbbf96ef77eb8943b466b26605824c14 (diff)
downloadpostgresql-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.c2
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();
}
}