diff options
author | Wez Furlong <wez@php.net> | 2006-04-22 16:35:18 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2006-04-22 16:35:18 +0000 |
commit | 64de59d9a7c94291799065cc32b60f8d9e5d92b9 (patch) | |
tree | ec3c9910864a23c639f327ae40e3f992c6048b0e /ext/pdo_mysql/mysql_statement.c | |
parent | ee103a7c398e2d3860050cf3d08944d678e16f33 (diff) | |
download | php-git-64de59d9a7c94291799065cc32b60f8d9e5d92b9.tar.gz |
avoid unterminated loop when closing the statement.
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rwxr-xr-x | ext/pdo_mysql/mysql_statement.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c index 4d7754a7e2..920702b3c9 100755 --- a/ext/pdo_mysql/mysql_statement.c +++ b/ext/pdo_mysql/mysql_statement.c @@ -69,11 +69,14 @@ static int pdo_mysql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC) #endif #if HAVE_MYSQL_NEXT_RESULT while (mysql_more_results(S->H->server)) { - if (mysql_next_result(S->H->server) == 0) { - MYSQL_RES *res = mysql_store_result(S->H->server); - if (res) { - mysql_free_result(res); - } + MYSQL_RES *res; + if (mysql_next_result(S->H->server) != 0) { + break; + } + + res = mysql_store_result(S->H->server); + if (res) { + mysql_free_result(res); } } #endif @@ -602,11 +605,13 @@ static int pdo_mysql_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC) } #if HAVE_MYSQL_NEXT_RESULT while (mysql_more_results(S->H->server)) { - if (mysql_next_result(S->H->server) == 0) { - MYSQL_RES *res = mysql_store_result(S->H->server); - if (res) { - mysql_free_result(res); - } + MYSQL_RES *res; + if (mysql_next_result(S->H->server) != 0) { + break; + } + res = mysql_store_result(S->H->server); + if (res) { + mysql_free_result(res); } } #endif |