summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLior Kaplan <kaplanlior@gmail.com>2015-04-01 01:54:53 +0300
committerLior Kaplan <kaplanlior@gmail.com>2015-04-01 01:54:53 +0300
commitc22543b3f3ccdf7eb53af3c4d1459ae2dc9bc54e (patch)
tree872a7aa43e99eba992a027de9c001a7b8f34f338
parent2d3868984cc0c43dd66f5aa0d2e56a92821300a6 (diff)
parenta32c8ba719493fd2b4700c4f7db1ef130ceb7661 (diff)
downloadphp-git-c22543b3f3ccdf7eb53af3c4d1459ae2dc9bc54e.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: Fixed bug #68739 (Missing break / control flow in curl) Fixed bug #68740 (NULL Pointer Dereference) Fixed bug #68677 (Use After Free in OPcache)
-rw-r--r--ext/curl/interface.c1
-rw-r--r--ext/ereg/regex/regcomp.c4
-rw-r--r--ext/opcache/zend_shared_alloc.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 45b6bb0365..a7b68dfe17 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -2847,6 +2847,7 @@ static int _php_curl_setopt(php_curl *ch, long option, zval **zvalue TSRMLS_DC)
curl_easy_setopt(ch->cp, CURLOPT_SHARE, sh->share);
}
}
+ break;
#if LIBCURL_VERSION_NUM >= 0x071500 /* Available since 7.21.0 */
case CURLOPT_FNMATCH_FUNCTION:
diff --git a/ext/ereg/regex/regcomp.c b/ext/ereg/regex/regcomp.c
index f4bfc1c167..c2223d7dbe 100644
--- a/ext/ereg/regex/regcomp.c
+++ b/ext/ereg/regex/regcomp.c
@@ -1284,6 +1284,10 @@ int c;
register int ncols = (g->ncsets+(CHAR_BIT-1)) / CHAR_BIT;
register unsigned uc = (unsigned char)c;
+ if (!g->setbits) {
+ return(0);
+ }
+
for (i = 0, col = g->setbits; i < ncols; i++, col += g->csetsize)
if (col[uc] != 0)
return(1);
diff --git a/ext/opcache/zend_shared_alloc.c b/ext/opcache/zend_shared_alloc.c
index bbe26e8172..8880b8817f 100644
--- a/ext/opcache/zend_shared_alloc.c
+++ b/ext/opcache/zend_shared_alloc.c
@@ -346,10 +346,10 @@ void *_zend_shared_memdup(void *source, size_t size, zend_bool free_source TSRML
retval = ZCG(mem);;
ZCG(mem) = (void*)(((char*)ZCG(mem)) + ZEND_ALIGNED_SIZE(size));
memcpy(retval, source, size);
+ zend_shared_alloc_register_xlat_entry(source, retval);
if (free_source) {
interned_efree((char*)source);
}
- zend_shared_alloc_register_xlat_entry(source, retval);
return retval;
}