1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-13 07:41:39 +03:00

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.
This commit is contained in:
Tom Lane
2016-12-07 12:39:24 -05:00
parent ccb84dae13
commit cf59a8a4fe

View File

@ -2220,6 +2220,10 @@ PageOutput(int lines, unsigned short int pager)
pagerpipe = popen(pagerprog, "w"); pagerpipe = popen(pagerprog, "w");
if (pagerpipe) if (pagerpipe)
return pagerpipe; return pagerpipe;
/* if popen fails, silently proceed without pager */
#ifndef WIN32
pqsignal(SIGPIPE, SIG_DFL);
#endif
#ifdef TIOCGWINSZ #ifdef TIOCGWINSZ
} }
#endif #endif