#
976e71a2 |
| 13-Apr-2021 |
Christoph M. Becker |
Fix #80933: SplFileObject::DROP_NEW_LINE is broken for NUL and CR `buf` may contain NUL bytes, so we must not use `strcspn()` but rather a binary safe variant. However, we also must not
Fix #80933: SplFileObject::DROP_NEW_LINE is broken for NUL and CR `buf` may contain NUL bytes, so we must not use `strcspn()` but rather a binary safe variant. However, we also must not detect a stray CR as line ending, and since we only need to check line endings at the end of the buffer, we can nicely optimize. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Closes GH-6836.
show more ...
|
#
44a80b64 |
| 15-Feb-2021 |
Nikita Popov |
Fix leak when breaking out of FilesystemIterator We need to always destroy current, not just when iter.data is not set. Take this opportunity to clean up the iterator destructor
Fix leak when breaking out of FilesystemIterator 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.
show more ...
|
#
32f377b0 |
| 19-Jun-2020 |
Nikita Popov |
Fixed bug #79710 Make sure we don't use zresource after the stream has been destroyed.
|
#
22a077b6 |
| 06-Apr-2020 |
Christoph M. Becker |
Fix #69264: __debugInfo() ignored while extending SPL classes We actually implement `::__debugInfo()` and drop the `get_debug_info()` handlers of all relevant SPL classes. This is clean
Fix #69264: __debugInfo() ignored while extending SPL classes We actually implement `::__debugInfo()` and drop the `get_debug_info()` handlers of all relevant SPL classes. This is cleaner and gives more flexibility regarding overriding the functionality in descendant classes.
show more ...
|
#
58b17906 |
| 03-Feb-2020 |
Nikita Popov |
Apply tidy formatting Mostly reindent PHP scripts to spaces.
|
#
4cd6d384 |
| 17-Dec-2019 |
Christoph M. Becker |
Fix #78976: SplFileObject::fputcsv returns -1 on failure `php_stream_write()` returns `-1` on failure now, which has to be catered to by `SplFileObject::fputcsv()` which still is suppose
Fix #78976: SplFileObject::fputcsv returns -1 on failure `php_stream_write()` returns `-1` on failure now, which has to be catered to by `SplFileObject::fputcsv()` which still is supposed to return `false` on failure.
show more ...
|
Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0 |
|
#
a5a15965 |
| 25-Nov-2019 |
Christoph M. Becker |
Fix #78863: DirectoryIterator class silently truncates after a null byte Since the constructor of DirectoryIterator and friends is supposed to accepts paths (i.e. strings without NUL byt
Fix #78863: DirectoryIterator class silently truncates after a null byte Since the constructor of DirectoryIterator and friends is supposed to accepts paths (i.e. strings without NUL bytes), we must not accept arbitrary strings.
show more ...
|
Revision tags: php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1 |
|
#
1ac6b025 |
| 08-Sep-2019 |
CHU Zhaowei |
Fix bug #72884 isCloneable() on SplFileObject should return false
|
Revision tags: php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1 |
|
#
d59aac58 |
| 18-Jul-2019 |
Nikita Popov |
Report errors from stream read and write operations The php_stream_read() and php_stream_write() functions now return an ssize_t value, with negative results indicating failure. Function
Report errors from stream read and write operations The php_stream_read() and php_stream_write() functions now return an ssize_t value, with negative results indicating failure. Functions like fread() and fwrite() will return false in that case. As a special case, EWOULDBLOCK and EAGAIN on non-blocking streams should not be regarded as error conditions, and be reported as successful zero-length reads/writes instead. The handling of EINTR remains unclear and is internally inconsistent (e.g. some code-paths will automatically retry on EINTR, while some won't). I'm landing this now to make sure the stream wrapper ops API changes make it into 7.4 -- however, if the user-facing changes turn out to be problematic we have the option of clamping negative returns to zero in php_stream_read() and php_stream_write() to restore the old behavior in a relatively non-intrusive manner.
show more ...
|
Revision tags: php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2, php-7.3.7RC3 |
|
#
608097a9 |
| 19-Jun-2019 |
Nikita Popov |
Fix various instances of memcpy null ub
|
#
7cbd4f31 |
| 19-Jun-2019 |
Nikita Popov |
Remove copy argument from php_glob_stream_get_path/pattern This is unused, and shouldn't be part of the API.
|
Revision tags: php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19 |
|
#
83804519 |
| 28-May-2019 |
Dmitry Stogov |
Replace ZVAL_COPY() and ZVAL_COPY_VALUE() for IS_OBJECT by cheaper macros
|
Revision tags: php-7.3.6, php-7.1.30, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5 |
|
#
91c6fb88 |
| 27-Apr-2019 |
Craig Duncan |
Fix #77024: SplFileObject::__toString() may return array - Correct the behaviour of casting spl files to strings - Add a test for Bug 77024
|
#
baa96693 |
| 19-Apr-2019 |
Fabien Villepinte |
Fix typo in comments
|
Revision tags: php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1 |
|
#
4f034016 |
| 18-Mar-2019 |
Nikita Popov |
Partial fix for bug #77751 This avoids the segfault, but it will not make writing to the SplFileObject during output shutdown work.
|
Revision tags: php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1, php-7.2.15, php-7.3.2, php-7.2.15RC1, php-7.3.2RC1 |
|
#
254a5914 |
| 09-Jan-2019 |
Christoph M. Becker |
Fix #77431 SplFileInfo::__construct() accepts NUL bytes `SplFileInfo::__construct()` has to expect a path instead of a string, analogous to `SplFileObject::__construct()`.
|
#
ec28d4c2 |
| 29-Jan-2019 |
Ahmed Abdou |
Fix bug #51068 (glob:// do not support current path relative) Fix DirectoryIterator glob://* current path relative queries
|
#
92ac598a |
| 22-Jan-2019 |
Peter Kokot |
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly
Remove local variables This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly used by Vim and Emacs editors yet with recent changes the once working definitions don't work anymore in Vim without custom plugins or additional configuration. Neither are these settings synced across the PHP code base. A simpler and better approach is EditorConfig and fixing code using some code style fixing tools in the future instead. This patch also removes the so called modelines for Vim. Modelines allow Vim editor specifically to set some editor configuration such as syntax highlighting, indentation style and tab width to be set in the first line or the last 5 lines per file basis. Since the php test files have syntax highlighting already set in most editors properly and EditorConfig takes care of the indentation settings, this patch removes these as well for the Vim 6.0 and newer versions. With the removal of local variables for certain editors such as Emacs and Vim, the footer is also probably not needed anymore when creating extensions using ext_skel.php script. Additionally, Vim modelines for setting php syntax and some editor settings has been removed from some *.phpt files. All these are mostly not relevant for phpt files neither work properly in the middle of the file.
show more ...
|
#
0cf7de1c |
| 30-Jan-2019 |
Zeev Suraski |
Remove yearly range from copyright notice
|
Revision tags: php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14 |
|
#
22c9d191 |
| 26-Dec-2018 |
Dmitry Stogov |
Removed useless zval_ptr_dtor(return_value)
|
Revision tags: php-7.2.14RC1, php-7.3.1RC1, php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33 |
|
#
3b0f0511 |
| 02-Dec-2018 |
Christoph M. Becker |
Allow empty $escape to eschew escaping CSV Albeit CSV is still a widespread data exchange format, it has never been officially standardized. There exists, however, the “informational” R
Allow empty $escape to eschew escaping CSV Albeit CSV is still a widespread data exchange format, it has never been officially standardized. There exists, however, the “informational” RFC 4180[1] which has no notion of escape characters, but rather defines `escaped` as strings enclosed in double-quotes where contained double-quotes have to be doubled. While this concept is supported by PHP's implementation (`$enclosure`), the `$escape` sometimes interferes, so that `fgetcsv()` is unable to correctly parse externally generated CSV, and `fputcsv()` is sometimes generating non-compliant CSV. Since PHP's `$escape` concept is availble for many years, we cannot drop it for BC reasons (even though many consider it as bug). Instead we allow to pass an empty string as `$escape` parameter to the respective functions, which results in ignoring/omitting any escaping, and as such is more inline with RFC 4180. It is noteworthy that this is almost no userland BC break, since formerly most functions did not accept an empty string, and failed in this case. The only exception was `str_getcsv()` which did accept an empty string, and used a backslash as escape character then (which appears to be unintended behavior, anyway). The changed functions are `fputcsv()`, `fgetcsv()` and `str_getcsv()`, and also the `::setCsvControl()`, `::getCsvControl()`, `::fputcsv()`, and `::fgetcsv()` methods of `SplFileObject`. The implementation also changes the type of the escape parameter of the PHP_APIs `php_fgetcsv()` and `php_fputcsv()` from `char` to `int`, where `PHP_CSV_NO_ESCAPE` means to ignore/omit escaping. The parameter accepts the same values as `isalpha()` and friends, i.e. “the value of which shall be representable as an `unsigned char` or shall equal the value of the macro `EOF`. If the argument has any other value, the behavior is undefined.” This is a subtle BC break, since the character `chr(128)` has the value `-1` if `char` is signed, and so likely would be confused with `EOF` when converted to `int`. We consider this BC break to be acceptable, since it's rather unlikely that anybody uses `chr(128)` as escape character, and it easily can be fixed by casting all `escape` arguments to `unsigned char`. This patch implements the feature requests 38301[2] and 51496[3]. [1] <https://tools.ietf.org/html/rfc4180> [2] <https://bugs.php.net/bug.php?id=38301> [3] <https://bugs.php.net/bug.php?id=51496>
show more ...
|
Revision tags: php-7.3.0, php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6 |
|
#
0f7f1498 |
| 15-Nov-2018 |
Dmitry Stogov |
Use ZEND_THIS macro to hide implementation details in extensions code.
|
#
c6ad0b92 |
| 13-Nov-2018 |
Dmitry Stogov |
Replace getThis() by EX(This), when additional check is not necessary.
|
Revision tags: php-7.1.24, php-7.2.12, php-7.3.0RC5, php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3, php-7.1.23RC1, php-7.2.11RC1, php-7.3.0RC2, php-5.6.38, php-7.1.22, php-7.3.0RC1, php-7.2.10, php-7.0.32, php-7.1.22RC1, php-7.3.0beta3, php-7.2.10RC1 |
|
#
32a728d3 |
| 19-Aug-2018 |
Christoph M. Becker |
Fix #68825: Exception in DirectoryIterator::getLinkTarget() intern->file_name may not have been properly set when DirectoryIterator::getLinkTarget() is called, so we make sure it is
Fix #68825: Exception in DirectoryIterator::getLinkTarget() intern->file_name may not have been properly set when DirectoryIterator::getLinkTarget() is called, so we make sure it is before using it.
show more ...
|
Revision tags: php-7.1.21, php-7.2.9, php-7.3.0beta2 |
|
#
84b195d9 |
| 10-Aug-2018 |
Gabriel Caruso |
Fix some misspellings
|