com php-src: Temporary fixed the invalid read warning: Zend/zend_string.h
| From: | Xinchen Hui | Date: | Mon, 14 Jul 2014 06:01:53 +0000 |
| Subject: | com php-src: Temporary fixed the invalid read warning: Zend/zend_string.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-79451@lists.php.net to get a copy of this message | ||
Commit: b7ff8f28b279b19d48af5f8c991d0ab93c5476b3
Author: Xinchen Hui <laruence@php.net> Mon, 14 Jul 2014 12:31:55 +0800
Parents: 6c8db864e047271fed082562a183e141b40c130e
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b7ff8f28b279b19d48af5f8c991d0ab93c5476b3
Log:
Temporary fixed the invalid read warning
Changed paths:
M Zend/zend_string.h
Diff:
diff --git a/Zend/zend_string.h b/Zend/zend_string.h
index 5a9b0e7..e1780d7 100644
--- a/Zend/zend_string.h
+++ b/Zend/zend_string.h
@@ -57,7 +57,7 @@ END_EXTERN_C()
#define _STR_HEADER_SIZE XtOffsetOf(zend_string, val)
#define STR_ALLOCA_ALLOC(str, _len, use_heap) do { \
- (str) = (zend_string *)do_alloca(_STR_HEADER_SIZE + (_len) + 1, (use_heap)); \
+ (str) = (zend_string *)do_alloca(ZEND_MM_ALIGNED_SIZE(_STR_HEADER_SIZE + (_len) + 1), (use_heap));
\
GC_REFCOUNT(str) = 1; \
(str)->h = 0; \
(str)->len = (_len); \
@@ -109,7 +109,7 @@ static zend_always_inline zend_uint zend_str_delref(zend_string *s)
static zend_always_inline zend_string *zend_str_alloc(int len, int persistent)
{
- zend_string *ret = (zend_string *)pemalloc(_STR_HEADER_SIZE + len + 1, persistent);
+ zend_string *ret = (zend_string *)pemalloc(ZEND_MM_ALIGNED_SIZE(_STR_HEADER_SIZE + len + 1),
persistent);
GC_REFCOUNT(ret) = 1;
#if 1
@@ -127,7 +127,7 @@ static zend_always_inline zend_string *zend_str_alloc(int len, int persistent)
static zend_always_inline zend_string *zend_str_safe_alloc(size_t n, size_t m, size_t l, int
persistent)
{
- zend_string *ret = (zend_string *)safe_pemalloc(n, m, _STR_HEADER_SIZE + l + 1, persistent);
+ zend_string *ret = (zend_string *)safe_pemalloc(n, m, ZEND_MM_ALIGNED_SIZE(_STR_HEADER_SIZE + l +
1), persistent);
GC_REFCOUNT(ret) = 1;
#if 1
@@ -177,7 +177,7 @@ static zend_always_inline zend_string *zend_str_realloc(zend_string *s, int len,
ret = STR_ALLOC(len, persistent);
memcpy(ret->val, s->val, (len > s->len ? s->len : len) + 1);
} else if (EXPECTED(STR_REFCOUNT(s) == 1)) {
- ret = (zend_string *)perealloc(s, _STR_HEADER_SIZE + len + 1, persistent);
+ ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_STR_HEADER_SIZE + len + 1), persistent);
ret->len = len;
STR_FORGET_HASH_VAL(ret);
} else {
@@ -196,7 +196,7 @@ static zend_always_inline zend_string *zend_str_safe_realloc(zend_string *s, siz
ret = STR_SAFE_ALLOC(n, m, l, persistent);
memcpy(ret->val, s->val, ((n * m) + l > s->len ? s->len : ((n * m) + l)) + 1);
} else if (STR_REFCOUNT(s) == 1) {
- ret = (zend_string *)safe_perealloc(s, n, m, _STR_HEADER_SIZE + l + 1, persistent);
+ ret = (zend_string *)safe_perealloc(s, n, m, ZEND_MM_ALIGNED_SIZE(_STR_HEADER_SIZE + l + 1),
persistent);
ret->len = (n * m) + l;
STR_FORGET_HASH_VAL(ret);
} else {