andrey Mon, 03 May 2010 19:09:45 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=298925
Log:
Handle OOM in mysqlnd_fetch_row_buffered_c()
Changed paths:
U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c
U php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c
Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c 2010-05-03
19:08:26 UTC (rev 298924)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c 2010-05-03
19:09:45 UTC (rev 298925)
@@ -939,20 +939,23 @@
}
}
+ set->data_cursor += result->meta->field_count;
+
MYSQLND_INC_GLOBAL_STATISTIC(STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF);
+
ret = mnd_malloc(result->field_count * sizeof(char *));
+ if (ret) {
+ for (i = 0; i < result->field_count; i++, field++,
zend_hash_key++) {
+ zval *data = current_row[i];
- for (i = 0; i < result->field_count; i++, field++,
zend_hash_key++) {
- zval *data = current_row[i];
-
- if (Z_TYPE_P(data) != IS_NULL) {
- convert_to_string(data);
- ret[i] = Z_STRVAL_P(data);
- } else {
- ret[i] = NULL;
+ if (Z_TYPE_P(data) != IS_NULL) {
+ convert_to_string(data);
+ ret[i] = Z_STRVAL_P(data);
+ } else {
+ ret[i] = NULL;
+ }
}
}
- set->data_cursor += result->meta->field_count;
-
MYSQLND_INC_GLOBAL_STATISTIC(STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF);
+ /* there is no conn handle in this function thus we can't set
OOM in error_info */
} else {
set->data_cursor = NULL;
DBG_INF("EOF reached");
Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c 2010-05-03 19:08:26 UTC
(rev 298924)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd_result.c 2010-05-03 19:09:45 UTC
(rev 298925)
@@ -939,20 +939,23 @@
}
}
+ set->data_cursor += result->meta->field_count;
+
MYSQLND_INC_GLOBAL_STATISTIC(STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF);
+
ret = mnd_malloc(result->field_count * sizeof(char *));
+ if (ret) {
+ for (i = 0; i < result->field_count; i++, field++,
zend_hash_key++) {
+ zval *data = current_row[i];
- for (i = 0; i < result->field_count; i++, field++,
zend_hash_key++) {
- zval *data = current_row[i];
-
- if (Z_TYPE_P(data) != IS_NULL) {
- convert_to_string(data);
- ret[i] = Z_STRVAL_P(data);
- } else {
- ret[i] = NULL;
+ if (Z_TYPE_P(data) != IS_NULL) {
+ convert_to_string(data);
+ ret[i] = Z_STRVAL_P(data);
+ } else {
+ ret[i] = NULL;
+ }
}
}
- set->data_cursor += result->meta->field_count;
-
MYSQLND_INC_GLOBAL_STATISTIC(STAT_ROWS_FETCHED_FROM_CLIENT_NORMAL_BUF);
+ /* there is no conn handle in this function thus we can't set
OOM in error_info */
} else {
set->data_cursor = NULL;
DBG_INF("EOF reached");
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php