diff options
author | Anatol Belski <ab@php.net> | 2016-02-29 15:38:42 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2016-02-29 15:38:42 +0100 |
commit | d7fd614cc6149884bc29818d9467bc5bc269e81c (patch) | |
tree | 81eb07c68ccae8b45008b88b9d5b00d57f726246 | |
parent | a310c3b484051424c4545a00b731b78a4fff7982 (diff) | |
download | php-git-d7fd614cc6149884bc29818d9467bc5bc269e81c.tar.gz |
fix leaks and add one more NULL check
-rw-r--r-- | ext/pdo_dblib/dblib_stmt.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/ext/pdo_dblib/dblib_stmt.c b/ext/pdo_dblib/dblib_stmt.c index 387648244f..2830272b82 100644 --- a/ext/pdo_dblib/dblib_stmt.c +++ b/ext/pdo_dblib/dblib_stmt.c @@ -104,10 +104,16 @@ static int pdo_dblib_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC) dbcancel(H->link); if (stmt->columns) { + int i = 0; + for (; i < stmt->column_count; i++) { + if (stmt->columns[i].name) { + efree(stmt->columns[i].name); + } + } efree(stmt->columns); stmt->columns = NULL; } - + return 1; } @@ -115,8 +121,16 @@ static int pdo_dblib_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC) { pdo_dblib_stmt *S = (pdo_dblib_stmt*)stmt->driver_data; - efree(stmt->columns); - stmt->columns = NULL; + if (stmt->columns) { + int i = 0; + for (; i < stmt->column_count; i++) { + if (stmt->columns[i].name) { + efree(stmt->columns[i].name); + } + } + efree(stmt->columns); + stmt->columns = NULL; + } efree(S); |