]> granicus.if.org Git - php/log
php
4 years agoFix CLI server worker support
Nikita Popov [Thu, 4 Feb 2021 14:18:45 +0000 (15:18 +0100)]
Fix CLI server worker support

If we create separate listening sockets in each worker using
SO_REUSEADDR, then an incoming connection may be load-balanced
to a process that is already busy, either due to a long-running
request, or because it is a recursive request (in which case we
would deadlock).

Instead, only create one listening socket, and only create worker
forks afterwards. This way the incoming request will be served
by one of the workers that is currently listening for an incoming
connection.

4 years ago[ci skip] Merge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 3 Feb 2021 11:44:52 +0000 (12:44 +0100)]
[ci skip] Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix newly introduced compiler warning

4 years ago[ci skip] Merge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Wed, 3 Feb 2021 11:43:15 +0000 (12:43 +0100)]
[ci skip] Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix newly introduced compiler warning

4 years agoFix newly introduced compiler warning
Nikita Popov [Mon, 1 Feb 2021 08:46:17 +0000 (09:46 +0100)]
Fix newly introduced compiler warning

(cherry picked from commit ab8177de2c89672e63a7a1ccef4df8f7bf34fbd2)

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 3 Feb 2021 10:23:59 +0000 (11:23 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #53467: Phar cannot compress large archives

4 years agoFix #53467: Phar cannot compress large archives
Christoph M. Becker [Tue, 26 Jan 2021 16:46:32 +0000 (17:46 +0100)]
Fix #53467: Phar cannot compress large archives

When Phars are flushed, a new temporary file is created for each entry
which should be compressed, and the `compressed_filesize` is retrieved.
Afterwards, the Phar manifest is written, and only after that the files
are copied to the actual Phar.  So for each such entry there is an open
temp file, what easily exceeds the limit.

Therefore, we use a single temporary file for all entries, and store
the start offset in the otherwise unused `header_offset` member.  We
ensure that the `cfp` members are properly set to NULL even if flushing
fails, to avoid use after free scenarios.

This solution is based on a suggestion by @lserni[1].

Closes GH-6643.

[1] <https://github.com/box-project/box2/issues/80#issuecomment-77147371>

4 years agoFix bug #80600 DOMChildNode::remove does not work on DOMCharacterData.
Benjamin Eberlei [Mon, 1 Feb 2021 20:11:12 +0000 (21:11 +0100)]
Fix bug #80600 DOMChildNode::remove does not work on DOMCharacterData.

Closes GH-6660

4 years ago[ci skip] Merge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 2 Feb 2021 16:08:00 +0000 (17:08 +0100)]
[ci skip] Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  7.3.28 is next

4 years ago[ci skip] Merge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 2 Feb 2021 16:03:05 +0000 (17:03 +0100)]
[ci skip] Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  7.3.28 is next

4 years ago7.3.28 is next
Christoph M. Becker [Tue, 2 Feb 2021 16:01:55 +0000 (17:01 +0100)]
7.3.28 is next

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Tue, 2 Feb 2021 15:46:52 +0000 (16:46 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Update year to 2021

4 years agoUpdate year to 2021
Peter Kokot [Sun, 24 Jan 2021 11:23:20 +0000 (12:23 +0100)]
Update year to 2021

Closes GH-6636.

4 years agoRemove unnecessary cast in snmp_set_oid_output_format
Nikita Popov [Tue, 2 Feb 2021 15:43:43 +0000 (16:43 +0100)]
Remove unnecessary cast in snmp_set_oid_output_format

This cast isn't needed, and could result in the ValueError being
skipped due to truncation.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Tue, 2 Feb 2021 09:32:11 +0000 (10:32 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Add missing derefs in CurlFile

4 years agoAdd missing derefs in CurlFile
Nikita Popov [Tue, 2 Feb 2021 09:31:16 +0000 (10:31 +0100)]
Add missing derefs in CurlFile

As pointed out on GH-6456.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Tue, 2 Feb 2021 09:07:04 +0000 (10:07 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix persistent leak on load_wsdl_ex failure

4 years agoFix persistent leak on load_wsdl_ex failure
Nikita Popov [Tue, 2 Feb 2021 09:05:35 +0000 (10:05 +0100)]
Fix persistent leak on load_wsdl_ex failure

Move the load_wsdl_ex call into the zend_try that destroys the
docs hash table. The wsdl will be inserted into docs early on,
and will thus be released on subsequent bailout.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 1 Feb 2021 12:43:57 +0000 (13:43 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Revert "Updated to version 2021.1 (2021a)"

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 1 Feb 2021 12:42:43 +0000 (13:42 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Revert "Updated to version 2021.1 (2021a)"

4 years agoRevert "Updated to version 2021.1 (2021a)"
Christoph M. Becker [Mon, 1 Feb 2021 12:41:32 +0000 (13:41 +0100)]
Revert "Updated to version 2021.1 (2021a)"

This reverts commit 491488d21707062fa8e9b9187db3585fb0d347da, since
PHP-7.3 is in security mode, and this does not look security related.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 1 Feb 2021 11:59:22 +0000 (12:59 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80654: file_get_contents() maxlen fails above (2**31)-1 bytes

4 years agoFix #80654: file_get_contents() maxlen fails above (2**31)-1 bytes
Christoph M. Becker [Thu, 28 Jan 2021 16:00:16 +0000 (17:00 +0100)]
Fix #80654: file_get_contents() maxlen fails above (2**31)-1 bytes

We remove the arbitrary restriction to `INT_MAX`; it is superfluous on
32bit systems where `ZEND_LONG_MAX == INT_MAX` anyway, and not useful
on 64bit systems, where larger files should be readable, if the
`memory_limit` is large enough.

Closes GH-6648.

4 years agoXFAIL observer_error_05.phpt test
Nikita Popov [Mon, 1 Feb 2021 09:24:00 +0000 (10:24 +0100)]
XFAIL observer_error_05.phpt test

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Mon, 1 Feb 2021 08:49:13 +0000 (09:49 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix Laravel build on community job

4 years agoFix Laravel build on community job
Nikita Popov [Thu, 28 Jan 2021 09:24:48 +0000 (10:24 +0100)]
Fix Laravel build on community job

Now requires PHP 7.4, so use php7.4 to run composer everywhere.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Mon, 1 Feb 2021 08:46:27 +0000 (09:46 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix build

4 years agoFix build
Nikita Popov [Mon, 1 Feb 2021 08:46:17 +0000 (09:46 +0100)]
Fix build

4 years agocrc32 mac build fix
David CARLIER [Sat, 30 Jan 2021 09:45:01 +0000 (09:45 +0000)]
crc32 mac build fix

Closes GH-6651.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Stanislav Malyshev [Mon, 1 Feb 2021 05:42:48 +0000 (21:42 -0800)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix bug #80672 - Null Dereference in SoapClient

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Stanislav Malyshev [Mon, 1 Feb 2021 05:42:41 +0000 (21:42 -0800)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix bug #80672 - Null Dereference in SoapClient

4 years agoFix bug #80672 - Null Dereference in SoapClient
Stanislav Malyshev [Mon, 1 Feb 2021 05:15:23 +0000 (21:15 -0800)]
Fix bug #80672 - Null Dereference in SoapClient

4 years agoAdd missing stub for SodiumException
Christoph M. Becker [Thu, 28 Jan 2021 18:01:20 +0000 (19:01 +0100)]
Add missing stub for SodiumException

Closes GH-6649.

4 years agoNEWS
Remi Collet [Thu, 28 Jan 2021 15:26:46 +0000 (16:26 +0100)]
NEWS

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Remi Collet [Thu, 28 Jan 2021 15:26:26 +0000 (16:26 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  NEWS
  Fix #80682 opcache doesn't honour pcre.jit option

4 years agoNEWS
Remi Collet [Thu, 28 Jan 2021 15:25:35 +0000 (16:25 +0100)]
NEWS

4 years agoFix #80682 opcache doesn't honour pcre.jit option
Remi Collet [Thu, 28 Jan 2021 15:24:39 +0000 (16:24 +0100)]
Fix #80682 opcache doesn't honour pcre.jit option

4 years agoFix stub for Serializable::serialize()
Michael Voříšek [Wed, 27 Jan 2021 12:54:15 +0000 (13:54 +0100)]
Fix stub for Serializable::serialize()

This method may also return null.

4 years agoObserve fake closures
Sammy Kaye Powers [Fri, 15 Jan 2021 18:07:40 +0000 (10:07 -0800)]
Observe fake closures

Closes GH-6607.

4 years agoRm unneeded function
Stanislav Malyshev [Wed, 27 Jan 2021 08:18:49 +0000 (00:18 -0800)]
Rm unneeded function

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Stanislav Malyshev [Wed, 27 Jan 2021 08:15:43 +0000 (00:15 -0800)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Rm unneeded function

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Stanislav Malyshev [Wed, 27 Jan 2021 08:15:13 +0000 (00:15 -0800)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Rm unneeded function

4 years agoRm unneeded function
Stanislav Malyshev [Wed, 27 Jan 2021 08:13:43 +0000 (00:13 -0800)]
Rm unneeded function

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Stanislav Malyshev [Wed, 27 Jan 2021 06:55:16 +0000 (22:55 -0800)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Alternative fix for bug 77423

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Stanislav Malyshev [Wed, 27 Jan 2021 06:55:10 +0000 (22:55 -0800)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Alternative fix for bug 77423

4 years agoAlternative fix for bug 77423
Christoph M. Becker [Tue, 19 Jan 2021 10:23:25 +0000 (11:23 +0100)]
Alternative fix for bug 77423

That bug report originally was about `parse_url()` misbehaving, but the
security aspect was actually only regarding `FILTER_VALIDATE_URL`.
Since the changes to `parse_url_ex()` apparently affect userland code
which is relying on the sloppy URL parsing[1], this alternative
restores the old parsing behavior, but ensures that the userinfo is
checked for correctness for `FILTER_VALIDATE_URL`.

[1] <https://github.com/php/php-src/commit/5174de7cd33c3d4fa591c9c93859ff9989b07e8c#commitcomment-45967652>

4 years agoFixed observer API and JIT compatibility
Dmitry Stogov [Tue, 26 Jan 2021 18:31:15 +0000 (21:31 +0300)]
Fixed observer API and JIT compatibility

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 26 Jan 2021 18:15:00 +0000 (19:15 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #70091: Phar does not mark UTF-8 filenames in ZIP archives

4 years agoFix #70091: Phar does not mark UTF-8 filenames in ZIP archives
Christoph M. Becker [Tue, 26 Jan 2021 15:50:04 +0000 (16:50 +0100)]
Fix #70091: Phar does not mark UTF-8 filenames in ZIP archives

The default encoding of filenames in a ZIP archive is IBM Code Page
437.  Phar, however, only supports UTF-8 filenames.  Therefore we have
to mark filenames as being stored in UTF-8 by setting the general
purpose bit 11 (the language encoding flag).

The effect of not setting this bit for non ASCII filenames can be seen
in popular tools like 7-Zip and UnZip, but not when extracting the
archives via ext/phar (which is agnostic to the filename encoding), or
via ext/zip (which guesses the encoding).  Thus we add a somewhat
brittle low-level test case.

Closes GH-6630.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 26 Jan 2021 18:09:35 +0000 (19:09 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Update version

4 years agoUpdate version
Christoph M. Becker [Tue, 26 Jan 2021 18:07:57 +0000 (19:07 +0100)]
Update version

That appears to have been forgotten for a while.

4 years agoAllow observer handlers disabling optimization in RETURN opcode handler, that may...
Dmitry Stogov [Tue, 26 Jan 2021 16:23:13 +0000 (19:23 +0300)]
Allow observer handlers disabling optimization in RETURN opcode handler, that may cause loss value of returned local variable.

4 years agoSkip dummy frames allocated on CPU stack of zend_call_function().
Dmitry Stogov [Tue, 26 Jan 2021 15:41:26 +0000 (18:41 +0300)]
Skip dummy frames allocated on CPU stack of zend_call_function().
(Usage of "current_observed_frame" varible looks unsafe to me).

4 years agoFix VAR return type verification
Nikita Popov [Tue, 26 Jan 2021 14:15:18 +0000 (15:15 +0100)]
Fix VAR return type verification

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.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 25 Jan 2021 17:48:35 +0000 (18:48 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #75850: Unclear error message wrt. __halt_compiler() w/o semicolon

4 years agoFix #75850: Unclear error message wrt. __halt_compiler() w/o semicolon
Christoph M. Becker [Mon, 25 Jan 2021 16:12:48 +0000 (17:12 +0100)]
Fix #75850: Unclear error message wrt. __halt_compiler() w/o semicolon

We add the failure reason to the error message.

Closes GH-6638.

4 years agoImprove switch continue warning
Nikita Popov [Mon, 25 Jan 2021 15:17:14 +0000 (16:17 +0100)]
Improve switch continue warning

Don't suggest "continue N+1" if there is no wrapping loop. The
resulting code would be illegal.

4 years agoFix #53251: bindtextdomain with null dir doesn't return old value
Christoph M. Becker [Fri, 22 Jan 2021 12:08:51 +0000 (13:08 +0100)]
Fix #53251: bindtextdomain with null dir doesn't return old value

Apparently, users expect `bindtextdomain` and `bind_textdomain_codeset`
with `null` as second argument to work like their C counterparts,
namely to return the previously set value.  Thus, we support that.

Closes GH-6631.

4 years agoFix opcache phpize build on FreeBSD
Alex Samorukov [Fri, 8 Jan 2021 18:09:09 +0000 (19:09 +0100)]
Fix opcache phpize build on FreeBSD

Closes GH-6589.

4 years agoUpdated to version 2021.1 (2021a)
Derick Rethans [Mon, 25 Jan 2021 10:44:06 +0000 (10:44 +0000)]
Updated to version 2021.1 (2021a)

4 years agoEmpty merge
Derick Rethans [Mon, 25 Jan 2021 10:44:06 +0000 (10:44 +0000)]
Empty merge

4 years agoUpdated to version 2021.1 (2021a)
Derick Rethans [Mon, 25 Jan 2021 10:44:05 +0000 (10:44 +0000)]
Updated to version 2021.1 (2021a)

4 years agoEmpty merge
Derick Rethans [Mon, 25 Jan 2021 10:44:05 +0000 (10:44 +0000)]
Empty merge

4 years agoUpdated to version 2021.1 (2021a)
Derick Rethans [Mon, 25 Jan 2021 10:44:04 +0000 (10:44 +0000)]
Updated to version 2021.1 (2021a)

4 years agoAdd missing stub for SNMPException
Christoph M. Becker [Sun, 24 Jan 2021 16:58:26 +0000 (17:58 +0100)]
Add missing stub for SNMPException

4 years agoAdd missing stub for com_exception
Christoph M. Becker [Sun, 24 Jan 2021 15:06:49 +0000 (16:06 +0100)]
Add missing stub for com_exception

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Thu, 21 Jan 2021 16:28:41 +0000 (17:28 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Add missing SKIPIF clause for recently introduced test case

4 years agoAdd missing SKIPIF clause for recently introduced test case
Christoph M. Becker [Thu, 21 Jan 2021 16:16:54 +0000 (17:16 +0100)]
Add missing SKIPIF clause for recently introduced test case

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 20 Jan 2021 15:24:53 +0000 (16:24 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80648: Fix for bug 79296 should be based on runtime version

4 years agoFix #80648: Fix for bug 79296 should be based on runtime version
Christoph M. Becker [Wed, 20 Jan 2021 14:24:47 +0000 (15:24 +0100)]
Fix #80648: Fix for bug 79296 should be based on runtime version

Instead of checking for actually affected libzip versions, we now always
`ZIP_TRUNCATE` empty files unless `ZIP_RDONLY` is set.

Closes GH-6625.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 20 Jan 2021 10:04:48 +0000 (11:04 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Add missing SKIPIF clauses to new test cases

4 years agoAdd missing SKIPIF clauses to new test cases
Christoph M. Becker [Wed, 20 Jan 2021 09:59:37 +0000 (10:59 +0100)]
Add missing SKIPIF clauses to new test cases

4 years agoSkip preloading test on windows
Nikita Popov [Wed, 20 Jan 2021 09:09:31 +0000 (10:09 +0100)]
Skip preloading test on windows

4 years agoFixed bug #80634 (write_property handler of internal classes is skipped on preloaded...
Dmitry Stogov [Wed, 20 Jan 2021 08:03:37 +0000 (11:03 +0300)]
Fixed bug #80634 (write_property handler of internal classes is skipped on preloaded JITted code)

4 years agoNext is 8.0.3
Gabriel Caruso [Tue, 19 Jan 2021 16:00:48 +0000 (13:00 -0300)]
Next is 8.0.3

4 years agoFix NEWS placeholder for the next version
Gabriel Caruso [Tue, 19 Jan 2021 15:32:17 +0000 (12:32 -0300)]
Fix NEWS placeholder for the next version

This aligns with the PHP-7.4 and PHP-7.3 branches, and should
fix the `sgolemon/php-release` script run for releasing 8.0.2.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Derick Rethans [Tue, 19 Jan 2021 14:59:19 +0000 (14:59 +0000)]
Merge branch 'PHP-7.4' into PHP-8.0

4 years agoUpdate NEWS and version
Derick Rethans [Tue, 19 Jan 2021 14:58:38 +0000 (14:58 +0000)]
Update NEWS and version

4 years agoUpdate NEWS for PHP 7.4.15RC1
Derick Rethans [Tue, 19 Jan 2021 14:44:32 +0000 (14:44 +0000)]
Update NEWS for PHP 7.4.15RC1

4 years agoFix observer tests on Windows
Nikita Popov [Tue, 19 Jan 2021 10:11:40 +0000 (11:11 +0100)]
Fix observer tests on Windows

Use %e instead of a hardcoded forward slash.

4 years agoFixed bug #80644: ResourceBundle::get() doesn't reset error state
Nikita Popov [Tue, 19 Jan 2021 14:20:01 +0000 (15:20 +0100)]
Fixed bug #80644: ResourceBundle::get() doesn't reset error state

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Tue, 19 Jan 2021 10:44:22 +0000 (11:44 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fixed bug #42560

4 years agoFixed bug #42560
sj-i [Sun, 20 Dec 2020 06:57:54 +0000 (15:57 +0900)]
Fixed bug #42560

Check open_basedir after the fallback to the system's temporary
directory in tempnam().

In order to preserve the current behavior of upload_tmp_dir
(do not check explicitly specified dir, but check fallback),
new flags are added to check open_basedir for explicit dir
and for fallback.

Closes GH-6526.

4 years agoldap_search() and friends can return array
Christoph M. Becker [Mon, 18 Jan 2021 22:39:42 +0000 (23:39 +0100)]
ldap_search() and friends can return array

See the description of <https://www.php.net/ldap-search>, and also the
implementation.

Closes GH-6620.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 19 Jan 2021 09:30:06 +0000 (10:30 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #69279: Compressed ZIP Phar extractTo() creates garbage files

4 years agoFix #69279: Compressed ZIP Phar extractTo() creates garbage files
Christoph M. Becker [Fri, 18 Dec 2020 17:05:52 +0000 (18:05 +0100)]
Fix #69279: Compressed ZIP Phar extractTo() creates garbage files

When extracting compressed files from an uncompressed Phar, we must not
use the direct file pointer, but rather get an uncompressed file
pointer.

We also add a test to show that deflated and stored entries are
properly extracted.

This also fixes #79912, which appears to be a duplicate of #69279.

Co-authored-by: Anna Filina <afilina@gmail.com>
Closes GH-6599.

4 years agoKeep JIT region executable under ZTS
Dylan K. Taylor [Mon, 11 Jan 2021 22:39:14 +0000 (22:39 +0000)]
Keep JIT region executable under ZTS

When one thread tries to compile a script, another thread may
already be executing JITed code. In this case we can't make the
memory non-executable.

This violates the W^X principle, but doesn't seem to be avoidable
for ZTS builds for now. The same problem does not exist for NTS,
as it's a different process executing there, which has it's own
memory protection mapping.

Closes GH-6595.

4 years agoObserve unused return values in JIT
Nikita Popov [Tue, 19 Jan 2021 09:07:32 +0000 (10:07 +0100)]
Observe unused return values in JIT

Even if the return value is not used, it should still be available
to the observer.

4 years agoDisable opcache optimizations during some observer tests
Nikita Popov [Tue, 19 Jan 2021 08:59:26 +0000 (09:59 +0100)]
Disable opcache optimizations during some observer tests

Opcache inlines functions that only return a constant. Disable
optimizations to prevent differences in tests where such functions
are used (or rewrite the test to not depend on it).

4 years agoSplFileObject::fgets() cannot return false
Nikita Popov [Mon, 18 Jan 2021 15:47:04 +0000 (16:47 +0100)]
SplFileObject::fgets() cannot return false

spl_filesystem_file_read() is called with silent=0, so it will
throw on failure.

4 years agoSync gzgets signature with fgets
Nikita Popov [Mon, 18 Jan 2021 13:17:46 +0000 (14:17 +0100)]
Sync gzgets signature with fgets

4 years agoSync datefmt_get_calendar_object signature
Nikita Popov [Mon, 18 Jan 2021 13:38:53 +0000 (14:38 +0100)]
Sync datefmt_get_calendar_object signature

In this case, it's only a matter of using the same type order
in both cases.

4 years agoSync intlcal_create_instance() and IntlCalendar::createInstance()
Nikita Popov [Mon, 18 Jan 2021 13:35:44 +0000 (14:35 +0100)]
Sync intlcal_create_instance() and IntlCalendar::createInstance()

Remove the explicit mention of IntlGregorianCalendar in the latter.
It is a subclass of IntlCalendar, and as such covered if only
IntlCalendar is used as the return type.

4 years agoSync date_diff and DateTime::diff return type
Nikita Popov [Mon, 18 Jan 2021 13:32:24 +0000 (14:32 +0100)]
Sync date_diff and DateTime::diff return type

This function/method cannot return false.

4 years agoFix parameter name of PharData::getMetadata()
Nikita Popov [Mon, 18 Jan 2021 13:09:00 +0000 (14:09 +0100)]
Fix parameter name of PharData::getMetadata()

The name should be the same as for Phar::getMetadata().

4 years agoFix stub for Phar::setStub()
Dylan K. Taylor [Tue, 12 Jan 2021 01:49:38 +0000 (01:49 +0000)]
Fix stub for Phar::setStub()

This fixes multiple issues:
 * The first parameter may be resource|string.
 * It's an overloaded signature. The second parameter cannot be
   passed if the first one is a string. Use UNKNOWN default
   value for that reason.
 * Make parameter names in PharData::setStub() match those in
   Phar.

Closes GH-6596.

4 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 18 Jan 2021 10:01:01 +0000 (11:01 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80595: Resetting POSTFIELDS to empty array breaks request

4 years agoFix #80595: Resetting POSTFIELDS to empty array breaks request
Christoph M. Becker [Fri, 15 Jan 2021 13:01:40 +0000 (14:01 +0100)]
Fix #80595: Resetting POSTFIELDS to empty array breaks request

This is mainly to work around https://github.com/curl/curl/issues/6455,
but not building the mime structure for empty hashtables is a general
performance optimization, so we do not restrict it to affected cURL
versions (7.56.0 to 7.75.0).

The minor change to bug79033.phpt is unexpected, but should not matter
in practice.

Closes GH-6606.

4 years agoFixed bug #80617: Type narrowing warning in ZEND_TYPE_INIT_CODE
Nikita Popov [Thu, 14 Jan 2021 09:08:22 +0000 (10:08 +0100)]
Fixed bug #80617: Type narrowing warning in ZEND_TYPE_INIT_CODE

4 years agoFixed bug #80596: Fix anonymous class union typehint errors
Daniil Gentili [Wed, 13 Jan 2021 09:43:54 +0000 (10:43 +0100)]
Fixed bug #80596: Fix anonymous class union typehint errors

Cut off part after null byte when resolving the class name, to
avoid cutting off a larger part lateron.

Closes GH-6601.

4 years agoFixed bug #80422 (php_opcache.dll crashes when using Apache 2.4 with JIT)
Dmitry Stogov [Thu, 14 Jan 2021 05:16:27 +0000 (08:16 +0300)]
Fixed bug #80422 (php_opcache.dll crashes when using Apache 2.4 with JIT)