diff options
author | Adam Baratz <adam.baratz@gmail.com> | 2016-04-05 18:14:03 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2016-04-05 18:24:15 +0200 |
commit | a5e21665ee001e54d827e703ec6f0a3c7053be85 (patch) | |
tree | cf6a5f1e772c695a81fb960032a0fa63d1c7d70b /ext/pdo_dblib/dblib_stmt.c | |
parent | 32d6ac4ddf9b0a3ef1e1c345c5d3ce62cc0d5360 (diff) | |
download | php-git-a5e21665ee001e54d827e703ec6f0a3c7053be85.tar.gz |
Add driver-specific attributes for controlling calls to dbsetlogintime() and dbsettime()
Diffstat (limited to 'ext/pdo_dblib/dblib_stmt.c')
-rw-r--r-- | ext/pdo_dblib/dblib_stmt.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/ext/pdo_dblib/dblib_stmt.c b/ext/pdo_dblib/dblib_stmt.c index 8d7762ad8d..49b75ee2bb 100644 --- a/ext/pdo_dblib/dblib_stmt.c +++ b/ext/pdo_dblib/dblib_stmt.c @@ -95,6 +95,22 @@ static char *pdo_dblib_get_field_name(int type) } /* }}} */ +static void pdo_dblib_err_dtor(pdo_dblib_err *err) +{ + if (err->dberrstr) { + efree(err->dberrstr); + err->dberrstr = NULL; + } + if (err->lastmsg) { + efree(err->lastmsg); + err->lastmsg = NULL; + } + if (err->oserrstr) { + efree(err->oserrstr); + err->oserrstr = NULL; + } +} + static int pdo_dblib_stmt_cursor_closer(pdo_stmt_t *stmt) { pdo_dblib_stmt *S = (pdo_dblib_stmt*)stmt->driver_data; @@ -102,6 +118,8 @@ static int pdo_dblib_stmt_cursor_closer(pdo_stmt_t *stmt) /* Cancel any pending results */ dbcancel(H->link); + + pdo_dblib_err_dtor(&H->err); return 1; } @@ -110,6 +128,8 @@ static int pdo_dblib_stmt_dtor(pdo_stmt_t *stmt) { pdo_dblib_stmt *S = (pdo_dblib_stmt*)stmt->driver_data; + pdo_dblib_err_dtor(&S->err); + efree(S); return 1; |