svn: /php/php-src/branches/PHP_5_2/ Zend/zend_operators.c Zend/zend_operators.h main/main.c
| From: | Felipe Pena | Date: | Sat, 19 Jun 2010 20:47:24 +0000 |
| Subject: | svn: /php/php-src/branches/PHP_5_2/ Zend/zend_operators.c Zend/zend_operators.h main/main.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-62930@lists.php.net to get a copy of this message | ||
felipe Sat, 19 Jun 2010 20:47:24 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=300606
Log:
- Fixed bug #52061 (memory_limit above 2G)
# MFH: zend_atol()
Bug: http://bugs.php.net/52061 (Open) memory_limit above 2G
Changed paths:
U php/php-src/branches/PHP_5_2/Zend/zend_operators.c
U php/php-src/branches/PHP_5_2/Zend/zend_operators.h
U php/php-src/branches/PHP_5_2/main/main.c
Modified: php/php-src/branches/PHP_5_2/Zend/zend_operators.c
===================================================================
--- php/php-src/branches/PHP_5_2/Zend/zend_operators.c 2010-06-19 17:01:01 UTC (rev 300605)
+++ php/php-src/branches/PHP_5_2/Zend/zend_operators.c 2010-06-19 20:47:24 UTC (rev 300606)
@@ -69,7 +69,34 @@
return retval;
}
+ZEND_API long zend_atol(const char *str, int str_len) /* {{{ */
+{
+ long retval;
+ if (!str_len) {
+ str_len = strlen(str);
+ }
+ retval = strtol(str, NULL, 0);
+ if (str_len>0) {
+ switch (str[str_len-1]) {
+ case 'g':
+ case 'G':
+ retval *= 1024;
+ /* break intentionally missing */
+ case 'm':
+ case 'M':
+ retval *= 1024;
+ /* break intentionally missing */
+ case 'k':
+ case 'K':
+ retval *= 1024;
+ break;
+ }
+ }
+ return retval;
+}
+/* }}} */
+
ZEND_API double zend_string_to_double(const char *number, zend_uint length)
{
double divisor = 10.0;
Modified: php/php-src/branches/PHP_5_2/Zend/zend_operators.h
===================================================================
--- php/php-src/branches/PHP_5_2/Zend/zend_operators.h 2010-06-19 17:01:01 UTC (rev 300605)
+++ php/php-src/branches/PHP_5_2/Zend/zend_operators.h 2010-06-19 20:47:24 UTC (rev 300606)
@@ -303,6 +303,7 @@
ZEND_API void zend_compare_objects(zval *result, zval *o1, zval *o2 TSRMLS_DC);
ZEND_API int zend_atoi(const char *str, int str_len);
+ZEND_API long zend_atol(const char *str, int str_len);
ZEND_API void zend_locale_sprintf_double(zval *op ZEND_FILE_LINE_DC);
END_EXTERN_C()
Modified: php/php-src/branches/PHP_5_2/main/main.c
===================================================================
--- php/php-src/branches/PHP_5_2/main/main.c 2010-06-19 17:01:01 UTC (rev 300605)
+++ php/php-src/branches/PHP_5_2/main/main.c 2010-06-19 20:47:24 UTC (rev 300606)
@@ -119,7 +119,7 @@
static PHP_INI_MH(OnChangeMemoryLimit)
{
if (new_value) {
- PG(memory_limit) = zend_atoi(new_value, new_value_length);
+ PG(memory_limit) = zend_atol(new_value, new_value_length);
} else {
PG(memory_limit) = 1<<30; /* effectively, no limit */
}