Nikita Popov
0d8ebbaa73
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix early free of assign_obj op_data
2019-12-20 10:35:50 +01:00
Nikita Popov
885b3451f4
Fix early free of assign_obj op_data
...
We need to make sure that op_data is only freed after populating
result, as op_data may be the only thing holding the value in the
case of an overloaded assignment.
This reverts the code to how it looked like in 7.3.
2019-12-20 10:35:34 +01:00
Dmitry Stogov
621842e3f5
RECV opcode optimization
2019-12-20 06:46:25 +03:00
Dmitry Stogov
a31b5eca68
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:19:31 +03:00
Dmitry Stogov
66d5b0608a
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:17:39 +03:00
Dmitry Stogov
eb846939b1
Fixed bug #78999 (Cycle leak when using function result as temporary)
2019-12-19 23:11:08 +03:00
Nikita Popov
557a211f46
Adjust test for notice->warning change
2019-12-19 12:03:09 +01:00
Nikita Popov
e15915d21c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Avoid signed integer overflow in string offset check
2019-12-19 11:48:20 +01:00
Nikita Popov
527ad1d80c
Avoid signed integer overflow in string offset check
...
Cast to size_t before performing operations instead of afterwards.
2019-12-19 11:47:50 +01:00
Nikita Popov
89d1e6b7d0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Add destructor annotations in ini parser
2019-12-19 10:43:23 +01:00
Nikita Popov
e4b12fc62a
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Add destructor annotations in ini parser
2019-12-19 10:43:14 +01:00
Nikita Popov
0f078f6e78
Add destructor annotations in ini parser
...
It would be better to switch this to use %union and %type annotations,
but not going to do that change for 7.3.
2019-12-19 10:43:05 +01:00
Nikita Popov
2a76384b87
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix leak in assign_ref with function
2019-12-18 17:18:46 +01:00
Nikita Popov
df08d6bffe
Fix leak in assign_ref with function
...
As far as I can see, the retval copying is already done in all
callers of this function, so it should not be duplicated here.
2019-12-18 17:18:10 +01:00
Nikita Popov
655d5c8383
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78776
2019-12-18 15:56:10 +01:00
Nikita Popov
4a61d842e7
Fixed bug #78776
...
By using the normal inheritance check if the parent is abstract
as well.
2019-12-18 15:55:45 +01:00
Nikita Popov
1f5f4736d9
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Rethrow generator exception even without active stack frame
2019-12-18 11:04:51 +01:00
Nikita Popov
bfb38c3592
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Rethrow generator exception even without active stack frame
2019-12-18 11:04:46 +01:00
Nikita Popov
897d99c7a4
Rethrow generator exception even without active stack frame
...
Finally blocks in generators may be invoked during shutdown, in
which case we don't have a stack frame. Similar to what
zend_call_function does, we still need to rethrow these exceptions,
otherwise they will be hidden (and leak).
2019-12-18 11:04:15 +01:00
Nikita Popov
48d5100738
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix use-after-free when trying to write to closure property
2019-12-18 10:24:41 +01:00
Nikita Popov
b965f158ac
Fix use-after-free when trying to write to closure property
2019-12-18 10:24:02 +01:00
Nikita Popov
e0a31cee32
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix freeing of dynamic call name
2019-12-18 10:11:40 +01:00
Nikita Popov
ee89e73312
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix freeing of dynamic call name
2019-12-18 10:11:23 +01:00
Nikita Popov
189f625e2b
Fix freeing of dynamic call name
...
We need to free op2 if the call construction fails.
Also remove a redundant check for !call.
2019-12-18 10:11:09 +01:00
Nikita Popov
8eabaf7efc
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix const/cv freeing on failed reference assignment
2019-12-18 09:54:18 +01:00
Nikita Popov
0301ab70b3
Fix const/cv freeing on failed reference assignment
2019-12-18 09:54:10 +01:00
Nikita Popov
7194825c86
Fix leak of dynamic property name in address helper
2019-12-17 16:59:35 +01:00
Dmitry Stogov
b1f08079b5
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Property names of internal classes from temporary extensins, loaded by dl(), may be emalloc-ed strings.
2019-12-17 10:13:13 +03:00
Dmitry Stogov
d89cd0bb22
Property names of internal classes from temporary extensins, loaded by dl(), may be emalloc-ed strings.
2019-12-17 10:10:11 +03:00
Dmitry Stogov
6895eb4db5
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed memory leak
2019-12-17 10:09:43 +03:00
Dmitry Stogov
abf05181b9
Fixed memory leak
2019-12-17 10:09:22 +03:00
Dmitry Stogov
c8dbbd74e9
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed memory leaks
2019-12-17 09:58:56 +03:00
Dmitry Stogov
0927af3d8d
Fixed memory leaks
2019-12-17 09:58:27 +03:00
Nikita Popov
7d07f19eee
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Set opcache.optimization_level=0 in test
2019-12-16 20:23:53 +01:00
Nikita Popov
77e131da91
Set opcache.optimization_level=0 in test
...
Otherwise opcache "inlines" the function, which causes a minor
difference in destruction behavior.
2019-12-16 20:23:17 +01:00
Stanislav Malyshev
6556916759
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Test fixes
2019-12-16 10:31:40 -08:00
Stanislav Malyshev
d82a2f6c21
Test fixes
2019-12-16 10:31:22 -08:00
Nikita Popov
98527d7d4c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78973
2019-12-16 18:53:32 +01:00
Nikita Popov
11b041d3c6
Fixed bug #78973
...
Save opline in leave helper to correctly handle destructor calls
during CV freeing (or other leave freeing).
2019-12-16 18:52:30 +01:00
Nikita Popov
72a5fdec2c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78921
2019-12-13 16:38:42 +01:00
Nikita Popov
7e9e0937f3
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #78921
2019-12-13 16:38:24 +01:00
Nikita Popov
621598eaa8
Fixed bug #78921
...
By resetting fake_scope during autoloading. We already do the same
when executing destructors.
2019-12-13 16:37:20 +01:00
Nikita Popov
a40a69fdd0
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Introduce extra counter to avoid RTD key collisions
2019-12-13 11:05:41 +01:00
Nikita Popov
0f2cdbf214
Introduce extra counter to avoid RTD key collisions
...
Also generate a fatal error if a collision occurs in zend_compile.
This is not perfect, because collisions might still be introduced
via opcache, if one file is included multiple times during a request,
invalidate in the meantime and recompiled by different processes.
This still needs to be addressed, but this patch fixes the much
more common case of collisions occuring when opcache is not used.
Fixes bug #78903 .
2019-12-13 11:04:44 +01:00
Máté Kocsis
beee92a887
Remove support for mixing parameter order in implode()
2019-12-12 13:49:05 +01:00
Nikita Popov
d56768817b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78950 : Preloading trait method with static variables
2019-12-12 11:52:51 +01:00
Nikita Popov
be89a5c7f1
Fixed bug #78950 : Preloading trait method with static variables
...
We need to make sure that trait methods with static variables
allocate a separate MAP slot for the static variables pointer,
rather than working in-place.
2019-12-12 11:52:43 +01:00
Nikita Popov
231bc7c8be
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Revert "Fixed bug #78903 : Conflict in RTD key for closures results in crash"
2019-12-11 14:40:02 +01:00
Nikita Popov
502cd7b1f1
Revert "Fixed bug #78903 : Conflict in RTD key for closures results in crash"
...
This reverts commit b55033fa18 .
This breaks ext/opcache/tests/bug65915.phpt.
2019-12-11 14:38:48 +01:00
Nikita Popov
33648585d6
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #78903 : Conflict in RTD key for closures results in crash
2019-12-11 13:08:12 +01:00