summaryrefslogtreecommitdiff
path: root/ext/pdo_pgsql
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2006-05-08 14:33:00 +0000
committerIlia Alshanetsky <iliaa@php.net>2006-05-08 14:33:00 +0000
commit79ebfe382b8015ea812b6bbc403f9184fa3e4ffe (patch)
treedcdc6f08ebd4fcadaa857d11863387d5830934df /ext/pdo_pgsql
parent3bad805e35411e18d56dcfb93948030d600dd975 (diff)
downloadphp-git-79ebfe382b8015ea812b6bbc403f9184fa3e4ffe.tar.gz
Fixed memory leaks when working with cursors in PDO PostgreSQL driver.
Diffstat (limited to 'ext/pdo_pgsql')
-rw-r--r--ext/pdo_pgsql/pgsql_driver.c3
-rw-r--r--ext/pdo_pgsql/pgsql_statement.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c
index 7b1561506a..ed28052d2c 100644
--- a/ext/pdo_pgsql/pgsql_driver.c
+++ b/ext/pdo_pgsql/pgsql_driver.c
@@ -229,6 +229,9 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
PDO_CURSOR_FWDONLY TSRMLS_CC) == PDO_CURSOR_SCROLL;
if (scrollable) {
+ if (S->cursor_name) {
+ efree(S->cursor_name);
+ }
/* TODO: check how scrollable cursors related to prepared statements */
spprintf(&S->cursor_name, 0, "pdo_pgsql_cursor_%08x", (unsigned int) stmt);
}
diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c
index d83b86ad78..d4c12cef2a 100644
--- a/ext/pdo_pgsql/pgsql_statement.c
+++ b/ext/pdo_pgsql/pgsql_statement.c
@@ -341,6 +341,7 @@ static int pgsql_stmt_fetch(pdo_stmt_t *stmt,
spprintf(&q, 0, "FETCH %s %ld FROM %s", ori_str, offset, S->cursor_name);
S->result = PQexec(S->H->server, q);
+ efree(q);
status = PQresultStatus(S->result);
if (status != PGRES_COMMAND_OK && status != PGRES_TUPLES_OK) {