summaryrefslogtreecommitdiff
path: root/Zend
Commit message (Collapse)AuthorAgeFilesLines
* Fixed bug #80723Nikita Popov2021-02-162-0/+9
| | | | | This fixes the issue just for the Socket class. Presumably we'll want to do the same for other "resource" objects.
* Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2021-02-152-3/+23
|\ | | | | | | | | * PHP-7.4: Fix symtable cache being used while cleaning symtable
| * Fix symtable cache being used while cleaning symtableNikita Popov2021-02-152-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Fix assertion failure in cufa optimization with named argsNikita Popov2021-02-152-0/+9
| | | | | | | | Fixes oss-fuzz#30764.
* | Don't throw additional Error in require_once if exception already thrownNikita Popov2021-02-112-1/+20
| | | | | | | | As pointed out in comments on bug #66216.
* | Add missing classes to stubsMáté Kocsis2021-02-094-2/+20
| |
* | Use E_ERROR to report arginfo/zpp mismatchNikita Popov2021-02-091-1/+1
| | | | | | | | When E_CORE_ERROR is used, we don't get correct file/line information.
* | Fix stub for Serializable::serialize()Michael Voříšek2021-01-282-2/+2
| | | | | | | | This method may also return null.
* | Observe fake closuresSammy Kaye Powers2021-01-281-1/+1
| | | | | | | | Closes GH-6607.
* | Allow observer handlers disabling optimization in RETURN opcode handler, ↵Dmitry Stogov2021-01-263-11/+14
| | | | | | | | that may cause loss value of returned local variable.
* | Skip dummy frames allocated on CPU stack of zend_call_function().Dmitry Stogov2021-01-261-2/+6
| | | | | | | | (Usage of "current_observed_frame" varible looks unsafe to me).
* | Fix VAR return type verificationNikita Popov2021-01-262-6/+6
| | | | | | | | | | | | | | | | | | | | 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.
* | Improve switch continue warningNikita Popov2021-01-252-10/+38
| | | | | | | | | | Don't suggest "continue N+1" if there is no wrapping loop. The resulting code would be illegal.
* | Next is 8.0.3Gabriel Caruso2021-01-191-1/+1
| |
* | Fixed bug #80617: Type narrowing warning in ZEND_TYPE_INIT_CODENikita Popov2021-01-141-1/+1
| |
* | Fixed bug #80596: Fix anonymous class union typehint errorsDaniil Gentili2021-01-142-3/+43
| | | | | | | | | | | | | | Cut off part after null byte when resolving the class name, to avoid cutting off a larger part lateron. Closes GH-6601.
* | Add support for union types for internal functionsNikita Popov2021-01-122-15/+56
| | | | | | | | | | | | | | | | | | 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.
* | Fix infinite recursion in unlinked_instanceofNikita Popov2021-01-052-1/+19
| | | | | | | | | | | | | | 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.
* | Fix bug #80537Nikita Popov2020-12-211-4/+12
| | | | | | | | | | | | | | | | 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.
* | PDO MySQL: Use mysqlnd column namesNikita Popov2020-12-161-0/+13
| | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2020-12-161-3/+3
|\ \ | |/ | | | | | | * PHP-7.4: Fix bug #80523
| * Fix bug #80523Nikita Popov2020-12-161-3/+3
| | | | | | | | | | | | | | | | 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.
* | Next is 8.0.2Gabriel Caruso2020-12-151-1/+1
| |
* | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2020-12-152-3/+4
|\ \ | |/ | | | | | | * PHP-7.4: IBM i PASE doesn't support ITIMER_PROF
| * IBM i PASE doesn't support ITIMER_PROFCalvin Buckley2020-12-152-3/+4
| | | | | | | | | | | | | | | | | | | | 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.
* | EXTERN_C wrapping for GC buffer APIstwosee2020-12-101-2/+2
| | | | | | | | Closes GH-6502.
* | Fix removal of type source during unserializationNikita Popov2020-12-041-0/+1
| | | | | | | | | | | | | | 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.
* | Fixed bug #80462Nikita Popov2020-12-021-1/+1
| |
* | Disable stack reuse optimization for x86 PIC code. It may clobber local ↵Dmitry Stogov2020-12-012-2/+2
| | | | | | | | variable used for Global Offset Table.
* | Don't use scope when validating AttributeNikita Popov2020-12-012-1/+13
| | | | | | | | | | | | | | 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.
* | Fix use after free with file cache and arena allocated stringsNikita Popov2020-12-011-1/+3
| |
* | Don't mark cpu_supports functions as always inlineNikita Popov2020-12-011-16/+16
| | | | | | | | | | | | 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.
* | Preallocate stack space for JIT in execute_ex() to eliminate JIT ↵Dmitry Stogov2020-11-304-14/+69
| | | | | | | | prologue/epilogue.
* | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2020-11-271-4/+10
|\ \ | |/ | | | | | | * PHP-7.4: Fix build for non-x86
| * Fix build for non-x86Nikita Popov2020-11-271-4/+10
| |
* | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2020-11-271-0/+37
|\ \ | |/ | | | | | | * PHP-7.4: Fix AVX detection
| * Fix AVX detectionNikita Popov2020-11-271-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Fixed bug #80362: Running dtrace scripts can cause php to crashNikita Popov2020-11-241-1/+3
| | | | | | | | Patch by al at coralnet dot name.
* | Make sure zend_cpu_supports_pclmul() is always definedNikita Popov2020-11-271-15/+14
| | | | | | | | | | If __builtin_cpu_supports() is available, but doesn't have support for pclmul, the function would end up not being defined at all.
* | Assert that cpuinfo is initialized before useNikita Popov2020-11-272-3/+4
| | | | | | | | And fix some incorrect indentation.
* | Remove -dev from ZEND_VERSIONSara Golemon2020-11-261-1/+1
| |
* | Fixed bug #80377Nikita Popov2020-11-251-6/+0
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Fixed bug #80404Nikita Popov2020-11-241-0/+11
| | | | | | | | | | | | | | | | | | | | 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).
* | Fixed bug #80391Nikita Popov2020-11-242-0/+27
| | | | | | | | | | Iterable was not considered a subtype of array|object, and thus also not a subtype of mixed.
* | Remove some incorrect mixed parameter typesMáté Kocsis2020-11-212-5/+5
| |
* | Export zend_is_callable_at_frameNikita Popov2020-11-192-2/+5
| | | | | | | | | | | | 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.
* | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2020-11-182-0/+35
|\ \ | |/ | | | | | | * PHP-7.4: Short-circuit get_gc for currently running generator
| * Short-circuit get_gc for currently running generatorNikita Popov2020-11-182-0/+35
| |
* | Provide unused retvals to observersSammy Kaye Powers2020-11-173-46/+100
| | | | | | | | | | | | | | Make sure that the return value is available to observers, even if it is not used by the caller. Closes GH-6422.
* | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2020-11-171-0/+19
|\ \ | |/ | | | | | | * PHP-7.4: Fix incorrectly optimized out live range