diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/pdo_pgsql/pgsql_driver.c | 12 |
2 files changed, 12 insertions, 2 deletions
@@ -24,6 +24,8 @@ PHP NEWS - PDO_PgSQL: . Fixed bug #78983 (pdo_pgsql config.w32 cannot find libpq-fe.h). (SATŌ Kentarō) + . Fixed bug #78980 (pgsqlGetNotify() overlooks dead connection). (SATŌ + Kentarō) 18 Dec 2019, PHP 7.3.13 diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index 64be3cd9b8..1be0a6146e 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -1071,13 +1071,21 @@ static PHP_METHOD(PDO, pgsqlGetNotify) H = (pdo_pgsql_db_handle *)dbh->driver_data; - PQconsumeInput(H->server); + if (!PQconsumeInput(H->server)) { + pdo_pgsql_error(dbh, PGRES_FATAL_ERROR, NULL); + PDO_HANDLE_DBH_ERR(); + RETURN_FALSE; + } pgsql_notify = PQnotifies(H->server); if (ms_timeout && !pgsql_notify) { php_pollfd_for_ms(PQsocket(H->server), PHP_POLLREADABLE, (int)ms_timeout); - PQconsumeInput(H->server); + if (!PQconsumeInput(H->server)) { + pdo_pgsql_error(dbh, PGRES_FATAL_ERROR, NULL); + PDO_HANDLE_DBH_ERR(); + RETURN_FALSE; + } pgsql_notify = PQnotifies(H->server); } |