From: Ilia Alshanetsky Date: Mon, 8 May 2006 14:33:23 +0000 (+0000) Subject: MFB: Fixed memory leaks when working with cursors in PDO PostgreSQL driver. X-Git-Tag: BEFORE_NEW_OUTPUT_API~283 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=889f66837c14c02325aa1675eec456860a6a952c;p=php MFB: Fixed memory leaks when working with cursors in PDO PostgreSQL driver. --- diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index bbbfa4d3da..37c8e67144 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -155,6 +155,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 a3f9f908e0..e6499d73a1 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -241,6 +241,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) {