#
ebd3a210 |
| 15-Jul-2021 |
Nikita Popov |
Undef slot before destroying in unset_property We need to make sure that destructors can't access the partially destroyed property. Do the same we do in HTs. Fixes oss-fuzz #362
Undef slot before destroying in unset_property We need to make sure that destructors can't access the partially destroyed property. Do the same we do in HTs. Fixes oss-fuzz #36205.
show more ...
|
#
bdc60fa7 |
| 02-Jul-2021 |
Nikita Popov |
Fixed bug #80173 The analysis in the bug report wasn't correct (at least not in this case -- there may still be a more general problem here), the issue was that write_property return
Fixed bug #80173 The analysis in the bug report wasn't correct (at least not in this case -- there may still be a more general problem here), the issue was that write_property returned the original variable_ptr rather than the zend_assign_to_variable() return value, which will DEREF the variable before overwriting it.
show more ...
|
#
2bbf2a91 |
| 15-Sep-2020 |
Nikita Popov |
Fix assumption about property guard hash value The "member" string here does not necessarily have a pre-calculated hash value. In particular this is not the case if the class has no
Fix assumption about property guard hash value The "member" string here does not necessarily have a pre-calculated hash value. In particular this is not the case if the class has no properties. Fixes oss-fuzz #25546.
show more ...
|
#
f92a0362 |
| 01-Sep-2020 |
Nikita Popov |
Check for null EX(func) in write_property This can happen if zend_call_function inserted a dummy frame, and we already switched to the dummy frame in leave_helper, and an exception i
Check for null EX(func) in write_property This can happen if zend_call_function inserted a dummy frame, and we already switched to the dummy frame in leave_helper, and an exception is thrown during CV destruction. Fixes oss-fuzz #25343.
show more ...
|
#
dfaa4768 |
| 31-Aug-2020 |
Nikita Popov |
Fix bug #80037 If we're accessing an uninitialized typed property and __get is defined, don't perform a read_property callback, as __get is supposed to have no effect on uninitialize
Fix bug #80037 If we're accessing an uninitialized typed property and __get is defined, don't perform a read_property callback, as __get is supposed to have no effect on uninitialized typed properties. Usually it doesn't, but by-reference assignments cannot be performed through read_property. I'm deleting the test for bug #80039 again, as it doesn't really make sense anymore with this fix.
show more ...
|
#
e8430b59 |
| 15-Jul-2020 |
Nikita Popov |
Fixed bug #79862 While normally a private property in the active scope would take priority, we should not use this if it has the wrong "staticness".
|
#
2447fd9f |
| 09-Jun-2020 |
Nikita Popov |
Fixed bug #79683 Reset fake_scope during __toString() call. I'll check if we can solve this more globally in master, by resetting fake_scope in zend_call_function.
|
Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5 |
|
#
84354c62 |
| 28-Oct-2019 |
Nikita Popov |
Fixed bug #78904: Don't call any magic for uninitialized typed properties We already changed the behavior for __set() in f1848a4. However, it seems that this is also a problem for all th
Fixed bug #78904: Don't call any magic for uninitialized typed properties We already changed the behavior for __set() in f1848a4. However, it seems that this is also a problem for all the other property magic, see bug #78904. This commit makes the behavior of all the property magic consistent: Magic will not be triggered for uninitialized typed properties, only explicitly unset() ones. This brings behavior more in line how non-typed properties behave and avoids WTF. Closes GH-4974.
show more ...
|
#
266f3a02 |
| 15-Nov-2019 |
Nikita Popov |
Fixed bug #78810
|
#
f1848a4b |
| 24-Oct-2019 |
Nikita Popov |
Fix bug #78226: Don't call __set() on uninitialized typed properties Assigning to an uninitialized typed property will no longer trigger a call to __set(). However, calls to __set() are
Fix bug #78226: Don't call __set() on uninitialized typed properties Assigning to an uninitialized typed property will no longer trigger a call to __set(). However, calls to __set() are still triggered if the property is explicitly unset(). This gives us both the behavior people generally expect, and still allows ORMs to do lazy initialization by unsetting properties. For PHP 8, we should fine a way to forbid unsetting of declared properties entirely, and provide a different way to achieve lazy initialization.
show more ...
|
Revision tags: php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4 |
|
#
5a076e67 |
| 10-Oct-2019 |
Nikita Popov |
Return error_zval form get_property_ptr_ptr on exception This goes in the reverse direction of 4463acb9513dfb62206760c49b3da1fe4d92f40a. After looking around a bit, it seems that we alre
Return error_zval form get_property_ptr_ptr on exception This goes in the reverse direction of 4463acb9513dfb62206760c49b3da1fe4d92f40a. After looking around a bit, it seems that we already check for Z_ISERROR_P() on the get_property_ptr_ptr return value in other places. So do this in zend_fetch_property_address() as well, and also make sure that EG(error_zval) is indeed returned on exception in get_property_ptr_ptr. In particular, this fixes the duplicate exceptions that we used to get because first get_property_ptr_ptr threw one and then read_property throws the same exception again.
show more ...
|
Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1 |
|
#
358379be |
| 08-Aug-2019 |
Dmitry Stogov |
Fixed bug #78379 (Cast to object confuses GC, causes crash)
|
Revision tags: php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2 |
|
#
0f29fb5c |
| 24-Jun-2019 |
Dmitry Stogov |
Fixed bug 78175 (Preloading must store default values of static variables and properties)
|
Revision tags: php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16 |
|
#
a31f4642 |
| 26-Feb-2019 |
Nikita Popov |
Allow exceptions in __toString() RFC: https://wiki.php.net/rfc/tostring_exceptions And convert some object to string conversion related recoverable fatal errors into Error excep
Allow exceptions in __toString() RFC: https://wiki.php.net/rfc/tostring_exceptions And convert some object to string conversion related recoverable fatal errors into Error exceptions. Improve exception safety of internal code performing string conversions.
show more ...
|
#
e14d7733 |
| 29-May-2019 |
Dmitry Stogov |
Mark "cold" functions
|
#
83804519 |
| 28-May-2019 |
Dmitry Stogov |
Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
|
#
a7c99f3d |
| 19-Feb-2019 |
Dmitry Stogov |
Reorder conditions
|
Revision tags: php-7.3.3RC1, php-7.2.16RC1 |
|
#
da3316ff |
| 18-Feb-2019 |
Tyson Andre |
Fix typos in code comments in Zend/ [skip ci]
|
Revision tags: php-7.2.15, php-7.3.2 |
|
#
223d535d |
| 04-Feb-2019 |
Dmitry Stogov |
Reset common fields of EG(trampoline)
|
Revision tags: php-7.2.15RC1 |
|
#
92ac598a |
| 22-Jan-2019 |
Peter Kokot |
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly used by Vim and Emacs editors yet with recent changes the once working definitions don't work anymore in Vim without custom plugins or additional configuration. Neither are these settings synced across the PHP code base. A simpler and better approach is EditorConfig and fixing code using some code style fixing tools in the future instead. This patch also removes the so called modelines for Vim. Modelines allow Vim editor specifically to set some editor configuration such as syntax highlighting, indentation style and tab width to be set in the first line or the last 5 lines per file basis. Since the php test files have syntax highlighting already set in most editors properly and EditorConfig takes care of the indentation settings, this patch removes these as well for the Vim 6.0 and newer versions. With the removal of local variables for certain editors such as Emacs and Vim, the footer is also probably not needed anymore when creating extensions using ext_skel.php script. Additionally, Vim modelines for setting php syntax and some editor settings has been removed from some *.phpt files. All these are mostly not relevant for phpt files neither work properly in the middle of the file.
show more ...
|
#
a81202ac |
| 30-Jan-2019 |
Zeev Suraski |
Adios, yearly copyright ranges
|
#
f78e6814 |
| 25-Jan-2019 |
Nikita Popov |
Fixed bug #77498 I've renamed the function to the same name as the exported symbol in master.
|
Revision tags: php-7.3.2RC1 |
|
#
44f43708 |
| 16-Jan-2019 |
Dmitry Stogov |
Micro-optimization
|
#
9f05f642 |
| 16-Jan-2019 |
Dmitry Stogov |
Extend zend_get_property_offset() to return property_info for typed properties.
|
#
61d00c0c |
| 15-Jan-2019 |
Nikita Popov |
Fix handling of UNDEF properties in compound assign Restore NULLing of UNDEF values in get_property_ptr_ptr for the BP_VAR_R and BP_VAR_RW cases.
|