summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2021-02-153-0/+25
| |\ \ \ | | |/ / | | | | | | | | | | | | * PHP-7.4: Fixed bug #80747
| | * | Fixed bug #80747Nikita Popov2021-02-153-0/+25
| | | | | | | | | | | | | | | | If RSA key generation fails, actually report that failure.
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-152-3/+23
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix symtable cache being used while cleaning symtable
| * | | 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.
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-152-0/+9
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix assertion failure in cufa optimization with named args
| * | | Fix assertion failure in cufa optimization with named argsNikita Popov2021-02-152-0/+9
| | | | | | | | | | | | | | | | Fixes oss-fuzz#30764.
* | | | Use typed proprety for Transliterator::$idNikita Popov2021-02-153-31/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a read-only property for which Transliterator internally assigns a string value. Also clean up the code handling this property a bit.
* | | | Used typed properties for reflection $name and $classNikita Popov2021-02-153-44/+32
| | | | | | | | | | | | | | | | | | | | These are read-only properties, and Reflection makes sure to assign only strings.
* | | | Generate class entries for snmp, soap, sockets, sodium, sqlite3, sysv*, tidyMáté Kocsis2021-02-1529-99/+263
| | | | | | | | | | | | | | | | Closes GH-6696
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-152-7/+51
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix #78680: mysqlnd pam plugin missing terminating null
| * | | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2021-02-153-7/+55
| |\ \ \ | | |/ / | | | | | | | | | | | | * PHP-7.4: Fix #78680: mysqlnd pam plugin missing terminating null
| | * | Fix #78680: mysqlnd pam plugin missing terminating nullDaniel Black2021-02-153-7/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PAM service requires the terminating null to be part of the communication. Tested with MariaDB-10.4(pam) and Percona Server 5.7.32(auth_pam_compat). Also changed MySQL Enterprise test to the server side plugin, authentication_pam as opposed to the client plugin mysql_clear_password. Add additional check for pamtest user and pam service file as all are required for the test. More importantly, test result should actually succeed. Thanks Geoff Montee for bug report. Closes GH-78680.
* | | | Avoid repeatedly calling strlen in FPM setproctitle implementationDavid Carlier2021-02-151-2/+3
| | | | | | | | | | | | | | | | Closes GH-6689.
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-152-19/+15
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | * PHP-8.0: Fix leak when breaking out of FilesystemIterator Fixed bug #80600
| * | | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2021-02-152-19/+15
| |\ \ \ | | |/ / | | | | | | | | | | | | * PHP-7.4: Fix leak when breaking out of FilesystemIterator
| | * | Fix leak when breaking out of FilesystemIteratorNikita Popov2021-02-152-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to always destroy current, not just when iter.data is not set. Take this opportunity to clean up the iterator destructor code a bit, to remove redundant checks and incorrect comments.
| * | | Fixed bug #80600Benjamin Eberlei2021-02-121-1/+5
| | | |
* | | | Persist class name before methods, because it may be used insted of "self"Dmitry Stogov2021-02-152-10/+14
| | | |
* | | | CI: add --depth 1 to git clone for speedMax Semenik2021-02-151-1/+1
| | | | | | | | | | | | | | | | Closes GH-6690.
* | | | Use VM_MAKE_TAG for macos memory tagDavid CARLIER2021-02-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | In case Apple changes the meaning of the macro in the future. Closes GH-6687.
* | | | Remove stray mentions of mbstring.func_overloadMax Semenik2021-02-155-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | This feature has been completely removed. Closes GH-6688.
* | | | Fix failures due to new deprecationsChristopher Jones2021-02-1512-18/+32
| | | |
* | | | Generate class entries from stubs for phar, posix, pspell, readline, ↵Máté Kocsis2021-02-1520-147/+488
| | | | | | | | | | | | | | | | | | | | | | | | reflection, session, shmop Closes GH-6692
* | | | Generate class entries from stubs for oci8, odbc, openssl, pcntl, pdo, pgsqlMáté Kocsis2021-02-1422-49/+116
| | | | | | | | | | | | | | | | Closes GH-6691
* | | | Generate zend class entries based on stubsMáté Kocsis2021-02-1415-68/+172
| | | | | | | | | | | | | | | | Closes GH-6685
* | | | Enable class entry generation for sapi extensionsMáté Kocsis2021-02-1410-10/+15
| | | |
* | | | Optimize Traversable unpacking in zend_vm_def.hTyson Andre2021-02-132-48/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C compiler sees that a dynamic function is being called, so it cannot infer that iter->funcs has not changed. This results in more assembly instructions and slightly more time to execute that code path. Unpacking traversables to arrays(`ZEND_ADD_ARRAY_UNPACK`), starting foreach loops (`ZEND_FE_FETCH*`), etc. are affected. ``` <?php /* * Before: 1.576 seconds * After: 1.474 seconds */ function example() { $start = hrtime(true); $it = new SplFixedArray(1000); $total = 0; for ($i = 0; $i < 100000; $i++) { $total += count([...$it]); } $end = hrtime(true); printf("Elapsed: %.6f\n", ($end - $start) / 1_000_000_000); } example(); ```
* | | | Revert "Implement fetching TLS TCB offset on MacOS"Nikita Popov2021-02-122-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1106ff9a0e420e043c2e56c8ca00db85f1b85ee6. Looks like this sauses segfaults on MacOs ZTS with JIT.
* | | | Deprecate passing null to non-nullable arg of internal functionNikita Popov2021-02-11314-6079/+888
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This deprecates passing null to non-nullable scale arguments of internal functions, with the eventual goal of making the behavior consistent with userland functions, where null is never accepted for non-nullable arguments. This change is expected to cause quite a lot of fallout. In most cases, calling code should be adjusted to avoid passing null. In some cases, PHP should be adjusted to make some function arguments nullable. I have already fixed a number of functions before landing this, but feel free to file a bug if you encounter a function that doesn't accept null, but probably should. (The rule of thumb for this to be applicable is that the function must have special behavior for 0 or "", which is distinct from the natural behavior of the parameter.) RFC: https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg Closes GH-6475.
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-111-2/+3
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fixed bug #80718
| * | | Fixed bug #80718Nikita Popov2021-02-112-2/+5
| | | |
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-114-8/+27
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fixed bug #80719
| * | | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2021-02-115-8/+31
| |\ \ \ | | |/ / | | | | | | | | | | | | * PHP-7.4: Fixed bug #80719
| | * | Fixed bug #80719Nikita Popov2021-02-115-8/+27
| | | |
* | | | Implement fetching TLS TCB offset on MacOSDavid Carlier2021-02-112-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | Tested with php-cgi and wordpress and 1255 for jit settings. Closes GH-6659.
* | | | Allow all scalar types in ini_set()Nikita Popov2021-02-114-9/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes ini_set() to accept all scalar types (string|int|float|bool|null) for the new value. The idea here is that while the INI system ultimately works with strings, its value interpretation is designed to be consistent with PHP's casting rules, e.g. "1" and "" are interpreted as boolean true and false respectively. I personally believe that writing ini_set('precision', 10) makes more sense than ini_set('precision', '10'), and find strict_types to be unnecessarily pedantic here. Closes GH-6680.
* | | | Avoid useless SHM data duplicationDmitry Stogov2021-02-112-4/+22
| | | |
* | | | Fix typo in warnings_during_sccpTyson Andre2021-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Should be capture_warnings_during_sccp Related to 4c088c5da7fb96380a4cfc420d272075b40b6141
* | | | Sort some decls in spl_iterators.hLevi Morrison2021-02-111-21/+21
| | | | | | | | | | | | | | | | There are enough of them that sorting makes it a bit nicer.
* | | | Handle warnings during sccp function evaluationNikita Popov2021-02-114-60/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some upcoming changes like https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg will make it somewhat inconvenient to determine whether a given function invocation will generate a diagnostic. Rather than trying to exclude this in advance, call the function with diagnostics suppressed, and check whether anything was thrown. This adds a new EG flag that is kept specific to the SCCP use-case. This does not use the error_cb hook as it is a (non-TLS) global, and doesn't fully suppress error handling besides. Test this by removing the in advance checks for implode and array_flip.
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-111-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Update func info after password_get_info() change
| * | | Update func info after password_get_info() changeNikita Popov2021-02-111-1/+1
| | | |
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-113-8/+5
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Don't return null from password_get_info()
| * | | Don't return null from password_get_info()Nikita Popov2021-02-113-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The get_info() handler should never fail, but even if it does, we should still return a proper info array -- it doesn't make sense that a completely incorrect hash returns an info array, but a hash that is recognized but for which the options can't be extracted would return null.
* | | | run-tests: fix JUnit countsMax Semenik2021-02-111-1/+7
| | | | | | | | | | | | | | | | | | | | In 19680f886f, I forgot about my own TODO. At least, now I understand what this line was about :P
* | | | Merge branch 'PHP-8.0'Nikita Popov2021-02-112-1/+20
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Don't throw additional Error in require_once if exception already thrown
| * | | 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.
* | | | Link unbound simple classes (without parent/intefaces/traits) in first place.Dmitry Stogov2021-02-102-19/+30
| | | |
* | | | Unserialize op_array->scope before passing to ↵Dmitry Stogov2021-02-101-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | zend_file_cache_unserialize_type(). Don't use scope of closures.