svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c trunk/ext/mysqlnd/mysqlnd_result.c
| From: | Andrey Hristov | Date: | Mon, 03 May 2010 19:09:45 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_result.c trunk/ext/mysqlnd/mysqlnd_result.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-62525@lists.php.net to get a copy of this message | ||
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");