summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--ext/pdo_dblib/dblib_stmt.c13
2 files changed, 14 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 827fc2683d..c3de7d11b0 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ PHP NEWS
- Added CURLOPT_TCP_NODELAY constant to Curl extension. (Sara)
- Improved proc_open(). Now on Windows it can run external commands not through
CMD.EXE. (Dmitry)
+- Fixed bug #40121 (PDO_DBLIB driver wont free statements). (Ilia)
- Fixed bug #40098 (php_fopen_primary_script() not thread safe). (Ilia)
- Fixed bug #40091 (spl_autoload_register with 2 instances of the same
class). (Ilia)
diff --git a/ext/pdo_dblib/dblib_stmt.c b/ext/pdo_dblib/dblib_stmt.c
index 4f985e91d1..3be4876a3c 100644
--- a/ext/pdo_dblib/dblib_stmt.c
+++ b/ext/pdo_dblib/dblib_stmt.c
@@ -250,6 +250,17 @@ static int pdo_dblib_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_da
return 1;
}
+static int dblib_mysql_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC)
+{
+ pdo_dblib_stmt *S = (pdo_mysql_stmt*)stmt->driver_data;
+
+ if (S->rows) {
+ free_rows(S TSRMLS_CC);
+ S->rows = NULL;
+ }
+
+ return 1;
+}
struct pdo_stmt_methods dblib_stmt_methods = {
pdo_dblib_stmt_dtor,
@@ -261,5 +272,7 @@ struct pdo_stmt_methods dblib_stmt_methods = {
NULL, /* set attr */
NULL, /* get attr */
NULL, /* meta */
+ NULL, /* nextrow */
+ dblib_mysql_stmt_cursor_closer
};