summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-10-04 11:14:01 +0200
committerAnatol Belski <ab@php.net>2014-10-04 11:14:01 +0200
commit11cf279196a7edba43080b3497fa04abe5a0e5f5 (patch)
treeaa3d15d9f57f8cd87c1ea272740b1aa4b0490151
parentee4ae7fbc3ba6de5f51f95a621e14a18dd55c95d (diff)
parentf1e21c4979f215112f9a30bc9e6e4a1ebd5a32de (diff)
downloadphp-git-11cf279196a7edba43080b3497fa04abe5a0e5f5.tar.gz
Merge remote-tracking branch 'origin/master' into native-tls
* origin/master: Fix test gc_029_zts.phpt Fixed a bug that causes crash when environment variable is access while parsing php.ini fix asinh delivering -0 when the arg is 0 Mark test for full GC root buffer as XFAIL Fix two date tests Mark three foreach tests as XFAIL reveal some newer libcurl features in MINFO Fix bug number Fix bug #68188 Fix bug #68133 and bug #68135
-rw-r--r--Zend/tests/bug68118.phpt21
-rw-r--r--Zend/tests/gc_029_zts.phpt2
-rw-r--r--Zend/tests/gc_033.phpt2
-rw-r--r--Zend/zend_object_handlers.c10
-rw-r--r--Zend/zend_vm_def.h3
-rw-r--r--Zend/zend_vm_execute.h12
-rw-r--r--ext/curl/interface.c6
-rw-r--r--ext/curl/tests/check_win_config.phpt2
-rw-r--r--ext/date/tests/bug67118.phpt3
-rw-r--r--ext/date/tests/bug67118_2.phpt11
-rw-r--r--ext/standard/math.c2
-rw-r--r--sapi/litespeed/lsapi_main.c3
-rw-r--r--tests/lang/foreachLoop.013.phpt2
-rw-r--r--tests/lang/foreachLoop.014.phpt4
-rw-r--r--tests/lang/foreachLoop.015.phpt2
15 files changed, 64 insertions, 21 deletions
diff --git a/Zend/tests/bug68118.phpt b/Zend/tests/bug68118.phpt
new file mode 100644
index 0000000000..c56e70a112
--- /dev/null
+++ b/Zend/tests/bug68118.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Bug #68118: $a->foo .= 'test'; can leave $a->foo undefined
+--FILE--
+<?php
+
+set_error_handler(function() {
+ $obj = new stdClass;
+ $obj->test = 'meow';
+ return true;
+});
+
+$a = new stdClass;
+$a->undefined .= 'test';
+var_dump($a);
+
+?>
+--EXPECT--
+object(stdClass)#2 (1) {
+ ["undefined"]=>
+ string(4) "test"
+}
diff --git a/Zend/tests/gc_029_zts.phpt b/Zend/tests/gc_029_zts.phpt
index fc77e1f3bd..5d16e83348 100644
--- a/Zend/tests/gc_029_zts.phpt
+++ b/Zend/tests/gc_029_zts.phpt
@@ -34,4 +34,4 @@ unset($bar);
var_dump(gc_collect_cycles());
?>
--EXPECT--
-int(3)
+int(6)
diff --git a/Zend/tests/gc_033.phpt b/Zend/tests/gc_033.phpt
index bcd1541254..dee426a385 100644
--- a/Zend/tests/gc_033.phpt
+++ b/Zend/tests/gc_033.phpt
@@ -1,5 +1,7 @@
--TEST--
GC 033: Crash in GC while run with phpspec
+--XFAIL--
+Full GC root buffer not handled correctly yet
--FILE--
<?php
$a = new stdClass();
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index c2377e7512..5ee9847b6c 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -815,10 +815,6 @@ static zval *zend_std_get_property_ptr_ptr(zval *object, zval *member, int type,
(guard = zend_get_property_guard(zobj, property_info, member)) == NULL ||
(property_info && ((*guard) & IN_GET))) {
- /* we don't have access controls - will just add it */
- if(UNEXPECTED(type == BP_VAR_RW || type == BP_VAR_R)) {
- zend_error(E_NOTICE, "Undefined property: %s::$%s", zobj->ce->name->val, Z_STRVAL_P(member));
- }
ZVAL_NULL(&tmp);
if (EXPECTED((property_info->flags & ZEND_ACC_STATIC) == 0) &&
property_info->offset >= 0) {
@@ -830,6 +826,12 @@ static zval *zend_std_get_property_ptr_ptr(zval *object, zval *member, int type,
}
retval = zend_hash_update(zobj->properties, property_info->name, &tmp);
}
+
+ /* Notice is thrown after creation of the property, to avoid EG(std_property_info)
+ * being overwritten in an error handler. */
+ if (UNEXPECTED(type == BP_VAR_RW || type == BP_VAR_R)) {
+ zend_error(E_NOTICE, "Undefined property: %s::$%s", zobj->ce->name->val, Z_STRVAL_P(member));
+ }
} else {
/* we do have getter - fail and let it try again with usual get/set */
retval = NULL;
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index b843f42c41..7fa544b579 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -4037,8 +4037,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
ZVAL_UNDEF(&tmp_inc_filename);
if (Z_TYPE_P(inc_filename) != IS_STRING) {
- ZVAL_DUP(&tmp_inc_filename, inc_filename);
- convert_to_string(&tmp_inc_filename);
+ ZVAL_STR(&tmp_inc_filename, zval_get_string(inc_filename));
inc_filename = &tmp_inc_filename;
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 82676436b1..9f7d4c3a1a 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2908,8 +2908,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HA
ZVAL_UNDEF(&tmp_inc_filename);
if (Z_TYPE_P(inc_filename) != IS_STRING) {
- ZVAL_DUP(&tmp_inc_filename, inc_filename);
- convert_to_string(&tmp_inc_filename);
+ ZVAL_STR(&tmp_inc_filename, zval_get_string(inc_filename));
inc_filename = &tmp_inc_filename;
}
@@ -9647,8 +9646,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HAND
ZVAL_UNDEF(&tmp_inc_filename);
if (Z_TYPE_P(inc_filename) != IS_STRING) {
- ZVAL_DUP(&tmp_inc_filename, inc_filename);
- convert_to_string(&tmp_inc_filename);
+ ZVAL_STR(&tmp_inc_filename, zval_get_string(inc_filename));
inc_filename = &tmp_inc_filename;
}
@@ -16236,8 +16234,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
ZVAL_UNDEF(&tmp_inc_filename);
if (Z_TYPE_P(inc_filename) != IS_STRING) {
- ZVAL_DUP(&tmp_inc_filename, inc_filename);
- convert_to_string(&tmp_inc_filename);
+ ZVAL_STR(&tmp_inc_filename, zval_get_string(inc_filename));
inc_filename = &tmp_inc_filename;
}
@@ -33518,8 +33515,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL
ZVAL_UNDEF(&tmp_inc_filename);
if (Z_TYPE_P(inc_filename) != IS_STRING) {
- ZVAL_DUP(&tmp_inc_filename, inc_filename);
- convert_to_string(&tmp_inc_filename);
+ ZVAL_STR(&tmp_inc_filename, zval_get_string(inc_filename));
inc_filename = &tmp_inc_filename;
}
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 9a20efdb7a..5c4a8800a3 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -557,6 +557,12 @@ PHP_MINFO_FUNCTION(curl)
#if LIBCURL_VERSION_NUM >= 0x071504 /* 7.21.4 */
{"TLS-SRP", CURL_VERSION_TLSAUTH_SRP},
#endif
+#if LIBCURL_VERSION_NUM >= 0x072100 /* 7.33.0 */
+ {"HTTP2", CURL_VERSION_HTTP2},
+#endif
+#if LIBCURL_VERSION_NUM >= 0x072600 /* 7.38.0 */
+ {"GSSAPI", CURL_VERSION_GSSAPI},
+#endif
{NULL, 0}
};
diff --git a/ext/curl/tests/check_win_config.phpt b/ext/curl/tests/check_win_config.phpt
index d82fe6f41a..3d13638f90 100644
--- a/ext/curl/tests/check_win_config.phpt
+++ b/ext/curl/tests/check_win_config.phpt
@@ -40,6 +40,8 @@ SPNEGO => Yes
SSL => Yes
SSPI => Yes
TLS-SRP => No
+HTTP2 => No
+GSSAPI => No
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host => %s-pc-win32
SSL Version => OpenSSL/%s
diff --git a/ext/date/tests/bug67118.phpt b/ext/date/tests/bug67118.phpt
index 19b5914aa3..332142856e 100644
--- a/ext/date/tests/bug67118.phpt
+++ b/ext/date/tests/bug67118.phpt
@@ -23,4 +23,5 @@ class mydt extends datetime
new mydt("Funktionsansvarig rÄdgivning och juridik", "UTC");
?>
--EXPECTF--
-Fatal error: Call to a member function format() on null in %sbug67118.php on line %d
+Warning: DateTime::format(): The DateTime object has not been correctly initialized by its constructor in %s on line %d
+Bad date
diff --git a/ext/date/tests/bug67118_2.phpt b/ext/date/tests/bug67118_2.phpt
index 368d4d9401..9b6f545525 100644
--- a/ext/date/tests/bug67118_2.phpt
+++ b/ext/date/tests/bug67118_2.phpt
@@ -24,5 +24,12 @@ Done
--EXPECTF--
First try
Second try
-NULL
-Done \ No newline at end of file
+object(Foo)#1 (3) {
+ ["date"]=>
+ string(26) "2007-09-12 15:49:12.000000"
+ ["timezone_type"]=>
+ int(3)
+ ["timezone"]=>
+ string(3) "UTC"
+}
+Done
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 2531f9e1d4..ee06936369 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -220,7 +220,7 @@ static double php_asinh(double z)
return(asinh(z));
#else
# ifdef _WIN64
- if (z > 0) {
+ if (z >= 0) {
return log(z + sqrt(z * z + 1));
}
else {
diff --git a/sapi/litespeed/lsapi_main.c b/sapi/litespeed/lsapi_main.c
index 6793d5c9a4..13439460ae 100644
--- a/sapi/litespeed/lsapi_main.c
+++ b/sapi/litespeed/lsapi_main.c
@@ -69,7 +69,7 @@
#define SAPI_LSAPI_MAX_HEADER_LENGTH 2048
-static int lsapi_mode = 1;
+static int lsapi_mode = 0;
static char *php_self = "";
static char *script_filename = "";
static int source_highlight = 0;
@@ -1053,6 +1053,7 @@ int main( int argc, char * argv[] )
LSAPI_Init();
LSAPI_Init_Env_Parameters( NULL );
+ lsapi_mode = 1;
slow_script_msec = LSAPI_Get_Slow_Req_Msecs();
diff --git a/tests/lang/foreachLoop.013.phpt b/tests/lang/foreachLoop.013.phpt
index 3dec1194ff..b0c5e8dcf5 100644
--- a/tests/lang/foreachLoop.013.phpt
+++ b/tests/lang/foreachLoop.013.phpt
@@ -1,5 +1,7 @@
--TEST--
Directly modifying an unreferenced array when foreach'ing over it while using &$value syntax.
+--XFAIL--
+Needs major foreach changes to get sane behavior
--FILE--
<?php
diff --git a/tests/lang/foreachLoop.014.phpt b/tests/lang/foreachLoop.014.phpt
index ab3c657715..d32ea635fd 100644
--- a/tests/lang/foreachLoop.014.phpt
+++ b/tests/lang/foreachLoop.014.phpt
@@ -1,5 +1,7 @@
--TEST--
Directly modifying a REFERENCED array when foreach'ing over it.
+--XFAIL--
+Needs major foreach changes to get sane behavior
--FILE--
<?php
@@ -553,4 +555,4 @@ array(10) {
string(3) "v.2"
[9]=>
string(3) "v.3"
-} \ No newline at end of file
+}
diff --git a/tests/lang/foreachLoop.015.phpt b/tests/lang/foreachLoop.015.phpt
index dfba159153..5b12a2b0c2 100644
--- a/tests/lang/foreachLoop.015.phpt
+++ b/tests/lang/foreachLoop.015.phpt
@@ -1,5 +1,7 @@
--TEST--
Directly modifying a REFERENCED array when foreach'ing over it while using &$value syntax.
+--XFAIL--
+Needs major foreach changes to get sane behavior
--FILE--
<?php