#
5fb5a739 |
| 12-Jul-2021 |
Christoph M. Becker |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix #81243: Too much memory is allocated for preg_replace()
|
#
a6b43086 |
| 12-Jul-2021 |
Christoph M. Becker |
Fix #81243: Too much memory is allocated for preg_replace() Trimming a potentially over-allocated string appears to be reasonable, so we drop the condition altogether. We also r
Fix #81243: Too much memory is allocated for preg_replace() Trimming a potentially over-allocated string appears to be reasonable, so we drop the condition altogether. We also re-allocate twice the size needed in the first place, and not roughly tripple the size. Closes GH-7231.
show more ...
|
#
8fd747a2 |
| 11-Jul-2021 |
Aaron Piotrowski |
Fiber ucontext support (#7226) Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com> |
#
bc39abe8 |
| 19-Jun-2021 |
Benjamin Eberlei |
Fix #80097: Have ReflectionAttribute implement Reflector and __toString Implement printing for ReflectionAttribute. Attributes aren't printed as part of reflection output for other struc
Fix #80097: Have ReflectionAttribute implement Reflector and __toString Implement printing for ReflectionAttribute. Attributes aren't printed as part of reflection output for other structures (classes etc) yet. Closes GH-6117.
show more ...
|
#
c6d4f608 |
| 06-Jul-2021 |
Ben Ramsey |
The master branch is now for 8.1.0beta1 |
#
d776413f |
| 06-Jul-2021 |
Christoph M. Becker |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix #81223: flock() only locks first byte of file
|
#
520c00a5 |
| 05-Jul-2021 |
Christoph M. Becker |
Fix #81223: flock() only locks first byte of file `flock()` should lock the whole file, like on other systems which use mandatory locking. We cannot use `0` like for `flck.l_len`, so we
Fix #81223: flock() only locks first byte of file `flock()` should lock the whole file, like on other systems which use mandatory locking. We cannot use `0` like for `flck.l_len`, so we use the largest number, what is valid according to the documentation: <https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-lockfileex#remarks>. Closes GH-7216.
show more ...
|
#
8071bd2f |
| 05-Jul-2021 |
Christoph M. Becker |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix #74264: grapheme_strrpos() broken for negative offsets
|
#
28c93763 |
| 05-Jul-2021 |
Christoph M. Becker |
Fix #74264: grapheme_strrpos() broken for negative offsets We must not assume that `usearch_last()` gives the proper result for negative offsets. Instead we'd need to continue to search
Fix #74264: grapheme_strrpos() broken for negative offsets We must not assume that `usearch_last()` gives the proper result for negative offsets. Instead we'd need to continue to search backwards (`usearch_previous`) until we find a proper match. However, apparently searching backwards is broken, so we work around by searching forward from the start of the string until we pass the `offset_pos`, and then use the previous result. Closes GH-7189.
show more ...
|
#
52cf7ab8 |
| 02-Jul-2021 |
Nikita Popov |
Fix bug #80072: Root live tmpvars after GC TMPVAR operands are destroyed using zval_ptr_dtor_nogc(), because they usually cannot contain cycles. However, there are some rare exceptio
Fix bug #80072: Root live tmpvars after GC TMPVAR operands are destroyed using zval_ptr_dtor_nogc(), because they usually cannot contain cycles. However, there are some rare exceptions where this is possible, e.g. unserialize() return value. In such cases we rely on the producing code to root the value. If a GC run occurs between the rooting and consumption of the value, we would end up leaking it. To avoid this, root all live TMPVAR values after a GC run. Closes GH-7210.
show more ...
|
#
4e66e6a7 |
| 02-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fixed bug #80173
|
#
bdc60fa7 |
| 02-Jul-2021 |
Nikita Popov |
Fixed bug #80173 The analysis in the bug report wasn't correct (at least not in this case -- there may still be a more general problem here), the issue was that write_property return
Fixed bug #80173 The analysis in the bug report wasn't correct (at least not in this case -- there may still be a more general problem here), the issue was that write_property returned the original variable_ptr rather than the zend_assign_to_variable() return value, which will DEREF the variable before overwriting it.
show more ...
|
#
5b0a4690 |
| 01-Jul-2021 |
Christoph M. Becker |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix #52093: openssl_csr_sign truncates $serial
|
#
334387bb |
| 01-Jul-2021 |
Christoph M. Becker |
Fix #52093: openssl_csr_sign truncates $serial We use `ASN1_INTEGER_set_int64()` if supported[1], to avoid the truncation of the integer. [1] <https://www.openssl.org/docs/man1.
Fix #52093: openssl_csr_sign truncates $serial We use `ASN1_INTEGER_set_int64()` if supported[1], to avoid the truncation of the integer. [1] <https://www.openssl.org/docs/man1.1.0/man3/ASN1_INTEGER_set_int64.html#HISTORY> Closes GH-7209.
show more ...
|
#
b976bc44 |
| 01-Jul-2021 |
Nikita Popov |
Fixed bug #81208 The number of populated positional arguments is argc. i may also include named args and thus try to dtor uninitialized zvals. |
#
70b0330e |
| 30-Jun-2021 |
Christoph M. Becker |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix #73630: Built-in Weberver - overwrite $_SERVER['request_uri']
|
#
d7db5701 |
| 30-Jun-2021 |
Christoph M. Becker |
Fix #73630: Built-in Weberver - overwrite $_SERVER['request_uri'] The built-in Webserver's `on_path`, `on_query_string` and `on_url` callbacks may be called multiple times from the parse
Fix #73630: Built-in Weberver - overwrite $_SERVER['request_uri'] The built-in Webserver's `on_path`, `on_query_string` and `on_url` callbacks may be called multiple times from the parser; we must not simply replace the old values, but need to concatenate the new values instead. This appears to be tricky for `on_path` due to the path normalization, so we fail if the function is called again. The built-in Webserver logs errors during request parsing to stderr, but this is ignored by the php_cli_server framework, and apparently the Webserver does not send a resonse at all in such cases (instead of an 4xx). Thus we can only check that a request with an overly long path fails. Closes GH-7207.
show more ...
|
#
65bd8d28 |
| 29-Jun-2021 |
Nikita Popov |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix bug #80728: Don't reset the timeout on ini deactivate
|
#
98a21d1d |
| 12-Feb-2021 |
Calvin Buckley |
Fix bug #80728: Don't reset the timeout on ini deactivate When the time limit for a script is changed, when the script ends, its INI value will be reset. This calls the event handler for
Fix bug #80728: Don't reset the timeout on ini deactivate When the time limit for a script is changed, when the script ends, its INI value will be reset. This calls the event handler for the timeout change, which will unset then reset the timeout. However, this is done even if the script is done executing, and say, the CGI or CLI web server process is idle. This is probably incorrect, but isn't a problem on most platforms, because PHP uses a timer that only ticks when the process is active (that is, executing code). Since when it's idle, it's blocking on listen/read, it won't tick because nothing executes. However, on platforms where only the real-time timer is supported, (Cygwin/PASE) it ticks regardless of if PHP is even executing. This means that the idle processes are subject to timeouts from the INI reset on script end. This makes it so the timer is never set if the state is deactivating. Testing with the CLI web server indicates the timer no longer spuriously activates under PASE. Closes GH-6683.
show more ...
|
#
53ea910d |
| 29-Jun-2021 |
Christoph M. Becker |
7.3.30 is next |
#
f5cba2d4 |
| 29-Jun-2021 |
Christoph M. Becker |
[ci skip] Fix NEWS format |
#
1bf2b04b |
| 28-Jun-2021 |
Christoph M. Becker |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix #68471: IntlDateFormatter fails for "GMT+00:00" timezone
|
#
1a01f781 |
| 23-Jun-2021 |
Christoph M. Becker |
Fix #68471: IntlDateFormatter fails for "GMT+00:00" timezone GMT+00:00 is recognized by ICU, and is normalized to GMT. There are no issues when GMT+00:00 is passed to `IntlTimeZone::cre
Fix #68471: IntlDateFormatter fails for "GMT+00:00" timezone GMT+00:00 is recognized by ICU, and is normalized to GMT. There are no issues when GMT+00:00 is passed to `IntlTimeZone::createTimeZone()`, but passing it to IntlDateFormatter::__construct() causes a failure, since there is an additional check regarding the validity. While checking the validity of the result of `TimeZone::createTimeZone()`[1] is a good idea, comparing the IDs is overly restrictive. Instead we just check that the timezone is supported by ICU. [1] <https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/classicu_1_1TimeZone.html#a35da0507b62754ffe5d8d59c19775cdb> Closes GH-7190.
show more ...
|
#
b11785c5 |
| 25-Jun-2021 |
Cameron Porter |
Fixed bug #81085: Add version 7.71.0 blob options. Adds support for the following options beginning with version 7.71.0: CURLOPT_ISSUERCERT_BLOB CURLOPT_PROXY_ISSUERCERT
Fixed bug #81085: Add version 7.71.0 blob options. Adds support for the following options beginning with version 7.71.0: CURLOPT_ISSUERCERT_BLOB CURLOPT_PROXY_ISSUERCERT CURLOPT_PROXY_ISSUERCERT_BLOB CURLOPT_PROXY_SSLCERT_BLOB CURLOPT_PROXY_SSLKEY_BLOB CURLOPT_SSLCERT_BLOB CURLOPT_SSLKEY_BLOB Closes GH-7194.
show more ...
|
#
aad0d268 |
| 25-Jun-2021 |
Joe Watkins |
Fix bug #81200 ReflectionMethod::isStatic belongs on ReflectionFunctionAbstract |