| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This fixes the issue just for the Socket class. Presumably we'll
want to do the same for other "resource" objects.
|
|\
| |
| |
| |
| | |
* PHP-7.4:
Fix symtable cache being used while cleaning symtable
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We need to first clean the symtable and then check whether a cache
slot is available for it. Otherwise, it may happen that a destructor
runs while cleaning the table and uses up all the remaining slots
in the cache.
This is particularly insidious because once we overflow the cache,
the first pointer we modify is symtable_cache_ptr, making it hard
to understand what happened after the fact.
Fixes oss-fuzz #30815.
|
| |
| |
| |
| | |
Fixes oss-fuzz#30764.
|
| |
| |
| |
| | |
As pointed out in comments on bug #66216.
|
| | |
|
| |
| |
| |
| | |
When E_CORE_ERROR is used, we don't get correct file/line information.
|
| |
| |
| |
| | |
This method may also return null.
|
| |
| |
| |
| | |
Closes GH-6607.
|
| |
| |
| |
| | |
that may cause loss value of returned local variable.
|
| |
| |
| |
| | |
(Usage of "current_observed_frame" varible looks unsafe to me).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We should also set retval_ref when de-indirecting. Otherwise the
retval_ref != retval_ptr comparison below may incorrect assume
that we're returning a reference.
I don't have a reliable reproducer for this issue, but it sometimes
appears in certain configurations in arrow_functions/007.phpt in
conjunction with other changes.
|
| |
| |
| |
| |
| | |
Don't suggest "continue N+1" if there is no wrapping loop. The
resulting code would be illegal.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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
|