From cc69950b1527b321bf54a9394938d57e8f5a35cc Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Mon, 30 Jul 2018 18:27:59 +0200 Subject: Fixed bug #75402 Possible Memory Leak using PDO::CURSOR_SCROLL option --- ext/pdo_pgsql/pgsql_statement.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ext/pdo_pgsql/pgsql_statement.c') diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index b401917669..a9df2a97bf 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -165,6 +165,7 @@ static int pgsql_stmt_execute(pdo_stmt_t *stmt) pdo_pgsql_error_stmt(stmt, status, pdo_pgsql_sqlstate(S->result)); return 0; } + PQclear(S->result); /* the cursor was declared correctly */ S->is_prepared = 1; @@ -434,6 +435,11 @@ static int pgsql_stmt_fetch(pdo_stmt_t *stmt, return 0; } + if(S->result) { + PQclear(S->result); + S->result = NULL; + } + spprintf(&q, 0, "FETCH %s FROM %s", ori_str, S->cursor_name); efree(ori_str); S->result = PQexec(S->H->server, q); -- cgit v1.2.1