| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
We need to free op2 if the call construction fails.
Also remove a redundant check for !call.
|
|
|
|
|
| |
By resetting fake_scope during autoloading. We already do the same
when executing destructors.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The "return" in the for loop should have been a break on the switch,
otherwise the result is just ignored... but because it prevents
evaluation of the other operand, it also violates the invariant that
everything has been constant evaluated, resulting in an assertion
failure.
The for loop isn't correct in any case though, because it's not legal
to determine the result based on just the second operand, as the
first one may have a side-effect that cannot be optimized away.
|
|
|
|
| |
Fixes oss-fuzz #19109.
|
| |
|
|
|
|
|
| |
Not the first time inheritance of shadow properties causes an issue,
thankfully this whole concept is gone in PHP 7.4.
|
|\
| |
| |
| |
| | |
* PHP-7.2:
Fixed bug #78689
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fix bug #78752
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
NULL out the execute_data before destroying it, otherwise GC may
trigger while the execute_data is partially destroyed, resulting
in double-frees.
The handling of call stack unfreezing is a bit awkward because it's
a ZEND_API function, so we can't change the signature.
|
|\ \
| |/ |
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Fixes OSS-Fuzz #17895.
|
| |
| |
| |
| | |
Otherwise these warnings will turn up twice (or more...)
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Fixes OSS-Fuzz #17721.
|
|\ \
| |/ |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
The properties HT may be a GC root itself, so we need to remove it.
I'm not sure this issue actually applies to PHP 7.2, but committing
it there to be safe. As seen from the test case, the handling here
is rather buggy on 7.2.
|
| |
| |
| |
| |
| | |
Since digits are allowed for identifiers, we have to cater to them as
well.
|
| |
| |
| |
| |
| |
| |
| | |
In PHP 7.3 shadow properties are no longer duplicated. Make sure we
only release them if the property was defined on the parent class,
which means that it changed from private->shadow, which is where
duplication does happen.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fixed handling of references in nested data of objects with destructor
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fixed second part of the bug #78379 (Cast to object confuses GC, causes crash)
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fixed bug #78379 (Cast to object confuses GC, causes crash)
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Closes GH-4389.
(cherry picked from commit e6c2b288652cf9c8d0b92d2842d73b3eb2431860)
|
| |
| |
| |
| |
| | |
Prevent the gc_info from becoming all zero for a registered root
by setting the top bit to one for compressed root addresses.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When cleaning nops in the dfa pass, we were always keeping the
smart branch inhibiting nop that occurs directly before the jump
instruction. However, as we skip unreachable blocks entirely, it
may happen that we need to keep a nop that occurs further back,
prior to the unreachable blocks. Account for that case now.
We should really do something about the smart branch situation,
this is very fragile...
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 35353dc49a73a58c17c7896c4c4c3997ef2c007d.
This changes causes issues for Symfony, see
https://github.com/symfony/symfony/issues/32395. I'm reverting it
from PHP 7.2 and PHP 7.3 and only leaving it in PHP 7.4.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Closes GH-4324.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If we perform a class fetch that is not marked as exception safe,
convert exceptions thrown by autoloaders into a fatal error.
Ideally fetching the interfaces would be exception safe, but as it
isn't right now, we must abort at this point.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fix test case
|
| |
| |
| |
| |
| | |
stderr is supposed to be redirected to NUL (which is roughly equivalent
to /dev/null on POSIX), but actually was redirected to a file.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If a PHP file contains an invalid hex literal such as `0x_10`, the expected error
is `Parse error: syntax error, unexpected 'x_10' (T_STRING) in %s on line %d`.
This already worked correctly on Linux, but on Windows prior to this patch a different
error was produced: `Parse error: Invalid numeric literal in %s on line %d`.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
We can't assume that the method we're checking against is part of
the parent class...
|