summaryrefslogtreecommitdiff
path: root/ext
Commit message (Collapse)AuthorAgeFilesLines
...
| | * Fix potential file collision in dom testsNikita Popov2021-02-242-2/+2
| | |
* | | Switch few functions useful in Symphony apps to new ZPP API.Dmitry Stogov2021-02-241-3/+3
| | |
* | | Fixed error messageDmitry Stogov2021-02-2413-55/+55
| | |
* | | Allow pointer to end of memory in IS_UNSERIALIZED()Nikita Popov2021-02-241-2/+4
| | | | | | | | | | | | | | | | | | We already use <= for IS_SERIALIZED(), but the same general problem can also occur for IS_UNSERIALIZED(). We don't seem to hit this in practice prior to GH-5595 though.
* | | Merge branch 'PHP-8.0'Dmitry Stogov2021-02-242-4/+31
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fixed bug #80782 (DASM_S_RANGE_VREG on PHP_INT_MIN-1)
| * | Fixed bug #80782 (DASM_S_RANGE_VREG on PHP_INT_MIN-1)Dmitry Stogov2021-02-242-4/+31
| | |
* | | Fix Windows buildNikita Popov2021-02-231-1/+1
| | | | | | | | | | | | Don't add to a void pointer.
* | | Remove free_chunk APINikita Popov2021-02-233-54/+2
| | | | | | | | | | | | | | | | | | This API only works in very limited circumstances -- relying on it will invariably lead to leaks. The correct way to "free" something from the pool is to use the checkpoint API.
* | | Remove resize_chunk APINikita Popov2021-02-232-29/+0
| | | | | | | | | | | | | | | The last user has been dropped in the previous commit. This has never worked meaningfully in the first place.
* | | Fixed bug #80761Nikita Popov2021-02-231-35/+27
| | | | | | | | | | | | | | | | | | | | | When row data split across multiple packets, allocate a temporary buffer that can be reallocated, and only copy into the row buffer pool arena once we know the final size. This avoids quadratic memory usage for very large results.
* | | Merge branch 'PHP-8.0'Nikita Popov2021-02-232-10/+36
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fixed bug #80786
| * | Fixed bug #80786Nikita Popov2021-02-232-10/+36
| | | | | | | | | | | | | | | | | | | | | Don't use r0 as temporary register in math_double_long if it is already used for a memory result. This was already done in one branch, but not the other.
* | | Fixed bug #80724Cameron Porter2021-02-234-4/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | FilesystemIterator::FOLLOW_SYMLINKS is currently treated as a directory key mode flag, even though it does not change the way that the key during iteration is set. To address this, FOLLOW_SYMLINKS has been converted into an OTHER flag. Closes GH-6695.
* | | Fix #80329: Add option to specify LOAD DATA LOCAL white list folderDarek Slusarczyk2021-02-2334-26/+717
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * allow the user to specify a folder where files that can be sent via LOAD DATA LOCAL can exist * add mysqli.local_infile_directory for mysqli (ignored if mysqli.allow_local_infile is enabled) * add PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY for pdo_mysql (ignored if PDO::MYSQL_ATTR_LOCAL_INFILE is enabled) * add related tests * fixes for building with libmysql 8.x * small improvement in existing tests * update php.ini-[development|production] files Closes GH-6448. Co-authored-by: Nikita Popov <nikic@php.net>
* | | Merge branch 'PHP-8.0'Christoph M. Becker2021-02-223-3/+66
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fix #75776: Flushing streams with compression filter is broken
| * | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2021-02-223-3/+66
| |\ \ | | |/ | | | | | | | | | * PHP-7.4: Fix #75776: Flushing streams with compression filter is broken
| | * Fix #75776: Flushing streams with compression filter is brokenChristoph M. Becker2021-02-223-3/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First, the `bzip2.compress` filter has the same issue as `zlib.deflate` so we port the respective fix[1] to ext/bz2. Second, there is still an issue, if a stream with an attached compression filter is flushed before it is closed, without any writes in between. In that case, the compression is never finalized. We fix this by enforcing a `_php_stream_flush()` with the `closing` flag set in `_php_stream_free()`, whenever a write filter is attached. This call is superfluous for most write filters, but does not hurt, even when it is unnecessary. [1] <http://git.php.net/?p=php-src.git;a=commit;h=20e75329f2adb11dd231852c061926d0e4080929> Closes GH-6703.
* | | Generate class entries from stubs for com, standard, xmlreader, xmlwriter, ↵Máté Kocsis2021-02-2236-120/+324
| | | | | | | | | | | | | | | | | | xsl, zip, Zend Closes GH-6706
* | | Merge branch 'PHP-8.0'Christoph M. Becker2021-02-222-1/+17
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fix #80771: phpinfo(INFO_CREDITS) displays nothing in CLI
| * | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2021-02-222-1/+17
| |\ \ | | |/ | | | | | | | | | * PHP-7.4: Fix #80771: phpinfo(INFO_CREDITS) displays nothing in CLI
| | * Fix #80771: phpinfo(INFO_CREDITS) displays nothing in CLIChristoph M. Becker2021-02-222-1/+17
| | | | | | | | | | | | | | | | | | | | | There is no good reason not to show the credits in text based SAPIs, except for brevity. Thus, we suppress the credits from `php -i`. Closes GH-6710.
* | | Merge branch 'PHP-8.0'Christoph M. Becker2021-02-223-9/+30
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fix #80774: session_name() problem with backslash
| * | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2021-02-223-9/+30
| |\ \ | | |/ | | | | | | | | | * PHP-7.4: Fix #80774: session_name() problem with backslash
| | * Fix #80774: session_name() problem with backslashChristoph M. Becker2021-02-223-9/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we do no longer URL decode cookie names[1], we must not URL encode the session name. We need to prevent broken Set-Cookie headers, by rejecting names which contain invalid characters. [1] <http://git.php.net/?p=php-src.git;a=commit;h=6559fe912661ca5ce5f0eeeb591d928451428ed0> Closes GH-6711.
* | | hash: Implement secret support for xxh3 and xxh128Anatol Belski2021-02-203-24/+95
| | | | | | | | | | | | | | | | | | | | | | | | A secret can be passed through the options array. The length is currently in the range of 136 to 256 bytes. The concerned algos are already marked as non serializable. Signed-off-by: Anatol Belski <ab@php.net>
* | | Revert "Remove class validation. zend_lookup_class_ex() performs it anyway."Dmitry Stogov2021-02-201-0/+6
| | | | | | | | | | | | | | | | | | This reverts commit 61cf1355fd53b6556f0502510ba3e1efbd04d242. Class name validation is only performed if key is not passed. Here, lc_name is passed as key.
* | | Remove class validation. zend_lookup_class_ex() performs it anyway.Dmitry Stogov2021-02-201-6/+0
| | |
* | | Reduce ZPP API overheadDmitry Stogov2021-02-201-7/+6
| | |
* | | Attempt to fix ↵Dmitry Stogov2021-02-191-9/+40
| | | | | | | | | | | | ext\standard\tests\file\basename_bug66395_variation2-win32.phpt and ext\standard\tests\file\pathinfo_basic1-win32.phpt
* | | Improve basename(). Avoid calling mblen() for ASCII compatible locales.Dmitry Stogov2021-02-191-47/+77
| | |
* | | Generate ext/spl class entries from stubsMáté Kocsis2021-02-1829-233/+843
| | | | | | | | | | | | Closes GH-6709
* | | Fix static variable behavior with inheritanceNikita Popov2021-02-186-74/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a method is inherited, the static variables will now always use the initial values, rather than the values at the time of inheritance. As such, behavior no longer depends on whether inheritance happens before or after a method has been called. This is implemented by always keeping static_variables as the original values, and static_variables_ptr as the modified copy. Closes GH-6705.
* | | Initialize property to UNDEF on unserialize overwriteNikita Popov2021-02-182-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The UNDEF marker here is important to prevent the creation of a reference to the property currently being overwritten, which would then leak. This fixes oss-fuzz 6029559193534464, which was incorrectly merged into oss-fuzz #30584 (which is reported at https://github.com/google/oss-fuzz/issues/5211).
* | | Merge branch 'PHP-8.0'Nikita Popov2021-02-182-2/+12
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Avoid signed integer overflow in substr()
| * | Avoid signed integer overflow in substr()Nikita Popov2021-02-182-2/+12
| | | | | | | | | | | | | | | | | | | | | Perform negation after the (size_t) cast rather than before, so as to avoid a signed integer overflow for PHP_INT_MIN. Fixes oss-fuzz #31069.
* | | Don't use unmangled name if property not foundNikita Popov2021-02-182-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This restores the previous behavior for this case. We'll continue to use the mangled name, even if it does not correspond to a declared property. This also fixes an assertion failure for the case of property overwrite, as the add_new was not guaranteed to be "new" previously. Fixes oss-fuzz #31045.
* | | Merge branch 'PHP-8.0'Christoph M. Becker2021-02-172-0/+20
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fix #80763: msgfmt_format() does not accept DateTime references
| * | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2021-02-172-0/+20
| |\ \ | | |/ | | | | | | | | | * PHP-7.4: Fix #80763: msgfmt_format() does not accept DateTime references
| | * Fix #80763: msgfmt_format() does not accept DateTime referencesChristoph M. Becker2021-02-172-0/+20
| | | | | | | | | | | | | | | | | | `intl_zval_to_millis()` needs to cater to references. Closes GH-6707.
* | | unserialize() optimization. Omit class name validation before hash lookup, ↵Dmitry Stogov2021-02-171-14/+40
| | | | | | | | | | | | and perform it only before autoloading.
* | | Merge branch 'PHP-8.0'Dmitry Stogov2021-02-173-12/+100
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fixed bug #80745 (JIT produces Assert failure and UNKNOWN:0 var_dumps in code involving bitshifts)
| * | Fixed bug #80745 (JIT produces Assert failure and UNKNOWN:0 var_dumps in ↵Dmitry Stogov2021-02-173-12/+100
| | | | | | | | | | | | code involving bitshifts)
* | | Merge branch 'PHP-8.0'Dmitry Stogov2021-02-162-3/+101
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Fixed bug #80742 (Opcache JIT makes some boolean logic unexpectedly be true)
| * | Fixed bug #80742 (Opcache JIT makes some boolean logic unexpectedly be true)Dmitry Stogov2021-02-162-3/+101
| | |
* | | Add support for generating properties with union type of multiple classesMáté Kocsis2021-02-163-18/+16
| | | | | | | | | | | | Closes GH-6701
* | | Merge branch 'PHP-8.0'Nikita Popov2021-02-161-2/+3
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Handle incomplete result set metadata more gracefully
| * | Merge branch 'PHP-7.4' into PHP-8.0Nikita Popov2021-02-161-2/+3
| |\ \ | | |/ | | | | | | | | | * PHP-7.4: Handle incomplete result set metadata more gracefully
| | * Handle incomplete result set metadata more gracefullyNikita Popov2021-02-161-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Rather than segfaulting because sname is missing lateron, report a FAIL here. As this indicates a server bug, the errors is reported as an out of band warning, rather than a client error. This fixes the PHP side of bug #80713.
* | | Generate class entries from stubs for ldap, libxml, mbstring and mysqliMáté Kocsis2021-02-1610-83/+468
| | | | | | | | | | | | Closes GH-6684
* | | Merge branch 'PHP-8.0'Nikita Popov2021-02-1613-0/+17
|\ \ \ | |/ / | | | | | | | | | * PHP-8.0: Mark resource-like objects as non-comparable