From 48511179c6b959a83b6225e51c0ab382dacd3c2d Mon Sep 17 00:00:00 2001 From: SATO Kentaro Date: Wed, 18 Dec 2019 02:36:03 +0900 Subject: [PATCH] Fix #78982: pdo_pgsql returns dead persistent connection Call PQconsumeInput() before PQstatus() to update the status. --- ext/pdo_pgsql/pgsql_driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index ebe83140a3709..8c44fea4ad30e 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -483,7 +483,7 @@ static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_ static int pdo_pgsql_check_liveness(pdo_dbh_t *dbh) { pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data; - if (PQstatus(H->server) == CONNECTION_BAD) { + if (!PQconsumeInput(H->server) || PQstatus(H->server) == CONNECTION_BAD) { PQreset(H->server); } return (PQstatus(H->server) == CONNECTION_OK) ? SUCCESS : FAILURE;