| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Cut off part after null byte when resolving the class name, to
avoid cutting off a larger part lateron.
Closes GH-6601.
|
|
|
|
|
|
|
|
|
| |
This closes the last hole in the supported types for internal
function arginfo types. It's now possible to represent unions of
multiple classes. This is done by storing them as TypeA|TypeB and
PHP will then convert this into an appropriate union type list.
Closes GH-6581.
|
|
|
|
|
|
|
| |
I suspect this is only a partial fix for the issue, it's probably
possible to recurse through a more complex pathway as well.
Fixes oss-fuzz #28961.
|
|
|
|
|
|
|
|
| |
This is an unavoidable breaking change to both the type and
parameter name.
The assertion that was supposed to prevent this was overly lax
and accepted any object type for string parameters.
|
|
|
|
|
|
|
|
|
| |
mysqlnd already creates interned zend_strings for us, so let's
make use of them.
This also required updating the PDO case changing code to work
with potentially shared strings. For the lowercasing, use the
optimized zend_string_tolower() implementation.
|
|\
| |
| |
| |
| | |
* PHP-7.4:
Fix bug #80523
|
| |
| |
| |
| |
| |
| |
| |
| | |
Don't truncate the file length to unsigned int...
I have no idea whether that fully fixes the problem because the
process gets OOM killed before finishing, but at least the
immediate parse error is gone now.
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
IBM i PASE doesn't support ITIMER_PROF
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Like Cygwin, this platform needs to use a real-time timer.
This was based on a patch by @kadler, but it didn't handle unsetting
the timer, so the timeout would continue to be active, triggering
`hard_timeout` unexpectedly. The patch is fixed to handle unsetting.
Closes GH-6503.
|
| |
| |
| |
| | |
Closes GH-6502.
|
| |
| |
| |
| |
| |
| |
| | |
Missed a check for info in this code. Add it, and add an assertion
in type source removal to make it easier to catch this issue.
Fixes oss-fuzz #28208 and #28257.
|
| | |
|
| |
| |
| |
| | |
variable used for Global Offset Table.
|
| |
| |
| |
| |
| |
| |
| | |
This is not safe to do at this point. Even if we made it safe,
we'd see inconsistencies due to a partially compiled class.
Fixes oss-fuzz #28129.
|
| | |
|
| |
| |
| |
| |
| |
| | |
The use of no-sanitize may result in an inlining failure, which
will be promoted into a compile error by always-inline. Use a
normal inlining hint without enforcing it.
|
| |
| |
| |
| | |
prologue/epilogue.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix build for non-x86
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix AVX detection
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Our CPU detection code currently only checks whether hardware
support for AVX exists. However, we also need to check for operating
system support for XSAVE, as well as whether XCR0 has the SSE and
AVX bits set.
If this is not the case, unset the AVX and AVX2 bits in the cpuinfo
structure.
Hopefully this resolves our issues with CPU support detection.
Closes GH-6460.
|
| |
| |
| |
| | |
Patch by al at coralnet dot name.
|
| |
| |
| |
| |
| | |
If __builtin_cpu_supports() is available, but doesn't have support
for pclmul, the function would end up not being defined at all.
|
| |
| |
| |
| | |
And fix some incorrect indentation.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make sure the $PHP_THREAD_SAFETY variable is always available
when configuring extensions. It was previously available for
phpized extensions, but for in-tree builds it was being set
too late.
Then, use $PHP_THREAD_SAFETY instead of $enable_zts to check for
ZTS in bundled extensions, which makes sure these checks also
work for phpize builds.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For a division like [1..1]/[2..2] produce [0..1] as a result, which
would be the integer envelope of the floating-point result.
The implementation is pretty ugly (we're now taking min/max across
eight values...) but I couldn't come up with a more elegant way
to handle this that doesn't make things a lot more complex (the
division sign handling is the annoying issue here).
|
| |
| |
| |
| |
| | |
Iterable was not considered a subtype of array|object, and thus
also not a subtype of mixed.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Export the zend_is_callable_impl() function as
zend_is_callable_at_frame() for use by extension. As twose pointed
out, an extension may want to retrieve fcc for a private method.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Short-circuit get_gc for currently running generator
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Make sure that the return value is available to observers, even if
it is not used by the caller.
Closes GH-6422.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix incorrectly optimized out live range
|
| |
| |
| |
| |
| |
| |
| | |
For x ? y : z style structures, the live range starts at z, but
may also hold the value of y. Make sure that the refcounting check
takes this into account, by checking the type of a potential phi
user.
|
| |
| |
| |
| | |
Closes GH-6377
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix #74558: Can't rebind closure returned by Closure::fromCallable()
|
| |
| |
| |
| |
| |
| |
| |
| | |
Failure to rebind such closures is not necessarily related to them
being created by `ReflectionFunctionAbstract::getClosure()`, so we fix
the error message.
Closes GH-6424.
|
| | |
|
| |
| |
| |
| |
| | |
If assert() was called with named args, add description as named
arg as well.
|
| |
| |
| |
| |
| | |
This is now "bug compatible" with the normal behavior, and more
imporantly, does not crash :)
|
| |
| |
| |
| |
| |
| |
| |
| | |
Let's test the current behavior here. It might not be right, but
it's long-standing behavior.
Nearly missed an assertion failure here because the test was
XFAILed...
|
| |
| |
| |
| |
| | |
Even if the original issue only reproduces without opcache, we
should still allow running them with and without opcache.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix dynamic function definition in preload script
|
| |
| |
| |
| |
| |
| |
| |
| | |
We should use normal function renaming if the function is declared
during preloading itself, rather than afterwards.
This fixes a regression introduced by
68f80be9d1380de731930187250a7ed6b55ae196.
|
| |
| |
| |
| |
| |
| |
| | |
We should only disable early binding during the opcache_compile_file()
calls, not inside the preloading script or anything it includes.
The right condition to check for is whether we compile the file
without execution, as declaring classes is "execution".
|
| |
| |
| |
| |
| | |
We shouldn't call the copy constructor inside the original type,
duh.
|
| |
| |
| |
| |
| | |
As preloading runs in in_compilation mode, we also need to allow
use of unlinked classes in lookup_class().
|