From: Tom Lane Date: Wed, 7 Dec 2016 17:39:24 +0000 (-0500) Subject: Restore psql's SIGPIPE setting if popen() fails. X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=93c78ba19b378b4b54dad5ceb4fdf063bb0998e1;p=users%2Fheikki%2Fpostgres.git 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. --- diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index f45ce677d0..a1d2e9709d 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -2880,6 +2880,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(); } }