summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-04-27 12:23:51 +0800
committerXinchen Hui <laruence@gmail.com>2016-04-27 12:45:02 +0800
commitc89b7a48606468107adb4a83d5d39bfc6cda1d5f (patch)
treef1159a76d95fb603ea2486e0b49cb06d0da35e56
parent4ce8a15eaef1d9852b77b0458dbc44b6fdb5b0c8 (diff)
downloadphp-git-c89b7a48606468107adb4a83d5d39bfc6cda1d5f.tar.gz
Use zend_string_safe_alloc
-rw-r--r--ext/gmp/gmp.c5
-rw-r--r--ext/standard/string.c2
-rw-r--r--ext/standard/var_unserializer.c2
-rw-r--r--ext/standard/var_unserializer.re2
4 files changed, 5 insertions, 6 deletions
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c
index 56235e0c68..928ec26005 100644
--- a/ext/gmp/gmp.c
+++ b/ext/gmp/gmp.c
@@ -1144,11 +1144,10 @@ ZEND_FUNCTION(gmp_export)
} else {
size_t bits_per_word = size * 8;
size_t count = (mpz_sizeinbase(gmpnumber, 2) + bits_per_word - 1) / bits_per_word;
- size_t out_len = count * size;
- zend_string *out_string = zend_string_alloc(out_len, 0);
+ zend_string *out_string = zend_string_safe_alloc(count, out_len, 0, 0);
mpz_export(ZSTR_VAL(out_string), NULL, order, size, endian, 0, gmpnumber);
- ZSTR_VAL(out_string)[out_len] = '\0';
+ ZSTR_VAL(out_string)[ZSTR_LEN(out_string)] = '\0';
RETURN_NEW_STR(out_string);
}
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 7ee918c2fe..5219df915d 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -5374,7 +5374,7 @@ PHP_FUNCTION(str_pad)
return;
}
- result = zend_string_safe_alloc(ZSTR_LEN(input), 1, num_pad_chars, 0);
+ result = zend_string_safe_alloc(1, ZSTR_LEN(input), num_pad_chars, 0);
ZSTR_LEN(result) = 0;
/* We need to figure out the left/right padding lengths. */
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c
index 389c42b3de..3fc074dd6a 100644
--- a/ext/standard/var_unserializer.c
+++ b/ext/standard/var_unserializer.c
@@ -171,7 +171,7 @@ PHPAPI void var_destroy(php_unserialize_data_t *var_hashx)
static zend_string *unserialize_str(const unsigned char **p, size_t len, size_t maxlen)
{
size_t i, j;
- zend_string *str = zend_string_alloc(len, 0);
+ zend_string *str = zend_string_safe_alloc(1, len, 0, 0);
unsigned char *end = *(unsigned char **)p+maxlen;
if (end < *p) {
diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re
index c7e0581630..81cc26db9d 100644
--- a/ext/standard/var_unserializer.re
+++ b/ext/standard/var_unserializer.re
@@ -169,7 +169,7 @@ PHPAPI void var_destroy(php_unserialize_data_t *var_hashx)
static zend_string *unserialize_str(const unsigned char **p, size_t len, size_t maxlen)
{
size_t i, j;
- zend_string *str = zend_string_alloc(len, 0);
+ zend_string *str = zend_string_safe_alloc(1, len, 0, 0);
unsigned char *end = *(unsigned char **)p+maxlen;
if (end < *p) {