summaryrefslogtreecommitdiff
path: root/ext/pdo_mysql/mysql_statement.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2006-04-22 16:35:18 +0000
committerWez Furlong <wez@php.net>2006-04-22 16:35:18 +0000
commit64de59d9a7c94291799065cc32b60f8d9e5d92b9 (patch)
treeec3c9910864a23c639f327ae40e3f992c6048b0e /ext/pdo_mysql/mysql_statement.c
parentee103a7c398e2d3860050cf3d08944d678e16f33 (diff)
downloadphp-git-64de59d9a7c94291799065cc32b60f8d9e5d92b9.tar.gz
avoid unterminated loop when closing the statement.
Diffstat (limited to 'ext/pdo_mysql/mysql_statement.c')
-rwxr-xr-xext/pdo_mysql/mysql_statement.c25
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