Commit graph

936 commits

Author SHA1 Message Date
Dmitry Stogov
3e9bb03a62 Removed IS_TYPE_IMMUTABLE (it's the same as COPYABLE & !REFCOUED) 2016-11-28 22:59:57 +03:00
Nikita Popov
dd9ad0940a Fix get_class_vars() fast-path/slow-path discrepancies
Normalize to the fast-path behavior. In particular, make sure that
the the property visibility check is correct for property names that
are formatted like mangled private properties (but are not). This is
done by only calling zend_check_property_access() for INDIRECT
properties.
2016-11-22 20:49:12 +01:00
Andrea Faulds
a0502b89a6 Convert numeric keys in object/array casts
RFC: https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts

This converts key types as appropriate in object to array and array to object
casts, as well as in get_object_vars().
2016-11-14 18:20:45 +00:00
Joe Watkins
b0cacee303 Merge branch 'pull-request/2082' 2016-10-10 12:14:26 +01:00
Dmitry Stogov
6be2e79c2c On PHP-7.1 and above we have to check CALL_INFO instead of symbol_table. 2016-09-26 16:16:07 +03:00
Dmitry Stogov
bca7f02933 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #73156 (segfault on undefined function)
2016-09-26 14:17:27 +03:00
Dmitry Stogov
d279118422 Fixed bug #73156 (segfault on undefined function) 2016-09-26 14:14:57 +03:00
John Boehr
68e602ff0a Fix bug #69579 2016-09-22 12:38:07 +02:00
Nikita Popov
7cd2494bb8 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-22 12:34:55 +02:00
John Boehr
8e313becf4 Fix bug #69579 2016-09-22 12:32:37 +02:00
Andrea Faulds
fc5497cb92 Merge branch 'PHP-7.0' into PHP-7.1 2016-09-11 22:46:20 +01:00
Andrea Faulds
d690014bf3 Remove zpp fallback code (always use Fast ZPP)
Squashed commit of the following:

commit 3e27fbb3d2
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Sep 11 19:14:37 2016 +0100

    Keep dummy FAST_ZPP macro for compatibility

commit 8a7cfd00de
Author: Andrea Faulds <ajf@ajf.me>
Date:   Mon Sep 5 22:36:03 2016 +0100

    Remove FAST_ZPP macro and plain zpp fallback code
2016-09-11 22:44:46 +01:00
Dmitry Stogov
ff06588130 Fixed use after free 2016-08-16 11:44:22 +03:00
Danack
86aa1c784d Require parameter to be an object if passed. 2016-08-11 23:21:04 +01:00
Dmitry Stogov
0cfb47651c Fixed compilation warnings 2016-06-28 11:37:51 +03:00
Dmitry Stogov
f8faffe37e Merge branch 'PHP-7.0'
* PHP-7.0:
  Allow "proxy" ovjects to substitute their class names through get_class_name() handler (similar to var_dump() and others).
2016-06-22 17:28:59 +03:00
Dmitry Stogov
3c84e5e1ce Allow "proxy" ovjects to substitute their class names through get_class_name() handler (similar to var_dump() and others). 2016-06-22 17:23:04 +03:00
Nikita Popov
91f5940329 Forbid dynamic calls to scope introspection functions
Per RFC:
https://wiki.php.net/rfc/forbid_dynamic_scope_introspection
2016-05-24 20:48:24 +02:00
Dmitry Stogov
7b94b958cc Intern some known (and offten used) strings. 2016-05-12 13:47:22 +03:00
Xinchen Hui
4cd9cf8257 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test
  Revert "Fix bug #72162 (again)"
2016-05-06 10:53:25 +08:00
Xinchen Hui
441d1b8ef0 Revert "Fix bug #72162 (again)"
The problem is because we release p->value too early

and later you try to convert an object to string, which is a fatal error

then leave p->value double free, change to expect long is a BC break

This reverts commit 8e5b381004.
2016-05-06 10:45:44 +08:00
Nikita Popov
59f35c0ca9 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_builtin_functions.c
2016-05-05 17:31:25 +02:00
Nikita Popov
8e5b381004 Fix bug #72162 (again)
Not sure what the previous fix was supposed to do. The issue was
that error_reporting() simply assumes that the value must either
be an integer or a string.

Fixed by using zpp properly.
2016-05-05 17:28:52 +02:00
Xinchen Hui
badf1edffd Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72162 (use-after-free - error_reporting)
2016-05-05 11:02:34 +08:00
Xinchen Hui
9191862121 Fixed bug #72162 (use-after-free - error_reporting) 2016-05-05 11:02:21 +08:00
Dmitry Stogov
2578d08033 Fixed compilation warnings 2016-04-29 14:44:56 +03:00
Dmitry Stogov
6499162ff0 - get rid of EG(scope). zend_get_executed_scope() should be used instead.
- ichanged zval_update_constant_ex(). Use IS_TYPE_IMMUTABLE flag on shared constants and AST, instead of "inline_change" parameter.
2016-04-28 04:13:34 +03:00
Dmitry Stogov
7abfaac901 Merge zend_execute_data->called_scope into zend_execute_data->This.
"called_scope" made sense only for static method calls, for dynamic calls it was always equal to the class of $this.
Now EG(This) may store IS_OBJECT + $this or IS_UNUSED + "called_scope" (of course, "called_scope" may be NULL).
Some code might need to be adopted to support this change.
Checks (Z_OBJ(EX(This))) might need to be converted into (Z_TYPE(EX(This)) == IS_OBJECT).
2016-04-01 16:17:49 +03:00
Xinchen Hui
1e5ac8940a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71835 (json_encode sometimes incorrectly detects recursion with JsonSerializable)
2016-03-21 16:22:02 +08:00
Jakub Zelenka
7e069daa89 Fix bug #71835 (json_encode sometimes incorrectly detects recursion with JsonSerializable) 2016-03-20 15:56:27 +00:00
Xinchen Hui
0df9b51479 Return meaningful value 2016-01-22 15:34:56 +08:00
Xinchen Hui
b27e10284a Empty line 2016-01-21 14:37:54 +08:00
Xinchen Hui
145555f81c Cover overloaded functions 2016-01-21 14:31:03 +08:00
Xinchen Hui
2ee73ee094 Let's add a class entry for testing 2016-01-21 13:53:29 +08:00
Xinchen Hui
86883b793b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71336 (Wrong is_ref on properties as exposed via get_object_vars())
2016-01-13 17:38:36 +08:00
Xinchen Hui
39f0950746 Fixed bug #71336 (Wrong is_ref on properties as exposed via get_object_vars()) 2016-01-13 17:38:18 +08:00
Xinchen Hui
563659822d Merge branch 'PHP-7.0' 2016-01-02 17:56:54 +08:00
Xinchen Hui
97a9470d97 bump year which is missed in rev 49493a2 2016-01-02 17:56:11 +08:00
Xinchen Hui
7a5c663ec6 Merge branch 'PHP-7.0' 2015-12-25 20:32:46 -08:00
Xinchen Hui
6700be67f5 Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start) 2015-12-25 20:32:26 -08:00
Dmitry Stogov
ef6514d652 Don't use deprecated API 2015-12-16 16:01:09 +03:00
Xinchen Hui
d70aa14f2c Fixed bug #70323 (Regression in zend_fetch_debug_backtrace() can cause segfaults) 2015-11-09 17:14:15 +08:00
Xinchen Hui
a9636ff5a2 Fixed bug #70555 (fun_get_arg() on unsetted vars return UNKNOW)
and also keep the indices of func_get_args(). since they are similar
issue of #70574, thus reuse its test script.
2015-09-23 10:00:20 +08:00
Xinchen Hui
0f3ab1c2d0 Fixed #70547 similar bug in func_get_args 2015-09-22 13:58:42 +08:00
Xinchen Hui
e1dcfd2cf9 Fixed bug #70547 (unsetting function variables corrupts backtrace) 2015-09-22 11:59:35 +08:00
Xinchen Hui
d5b78cec64 We should keep one refcount to resource 2015-09-02 22:14:48 -07:00
Xinchen Hui
6815c08e29 Fixed bug #70398 (SIGSEGV, Segmentation fault zend_ast_destroy_ex) 2015-09-02 22:07:29 -07:00
Nikita Popov
13567d5dee Don't copy zend_strings during exception creation
Minor optimization...
2015-08-14 16:16:27 +02:00
Xinchen Hui
a094f4faed Remove useless insert 2015-08-14 17:09:27 +08:00
Dmitry Stogov
668ecaa606 Fixed bug #70098 (Real memory usage doesn't decrease) 2015-08-04 18:21:05 +03:00