]> granicus.if.org Git - php/log
php
3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Wed, 24 Mar 2021 10:53:53 +0000 (11:53 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #73533: Invalid memory access in php_libxml_xmlCheckUTF8

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 24 Mar 2021 10:52:27 +0000 (11:52 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #73533: Invalid memory access in php_libxml_xmlCheckUTF8

3 years agoFix #73533: Invalid memory access in php_libxml_xmlCheckUTF8 PHP-7.4
Christoph M. Becker [Tue, 23 Mar 2021 15:13:57 +0000 (16:13 +0100)]
Fix #73533: Invalid memory access in php_libxml_xmlCheckUTF8

A string passed to `php_libxml_xmlCheckUTF8()` may be longer than
1<<31-1 bytes, so we're better using a `size_t`.

Closes GH-6802.

3 years agoRevert "Do not check exact values of unstable metrices in FPM status test"
Nikita Popov [Wed, 24 Mar 2021 09:02:01 +0000 (10:02 +0100)]
Revert "Do not check exact values of unstable metrices in FPM status test"

This reverts commit 5b01c4863fe9e4bc2702b2bbf66d292d23001a18.

The previous commit fixes the 32-bit issue. Maybe this one is also
needed, but let's see if any failures of this form turn up first.

3 years agoFix printf type in fpm status
Nikita Popov [Wed, 24 Mar 2021 09:05:33 +0000 (10:05 +0100)]
Fix printf type in fpm status

3 years agoReplace function with macro
Dmitry Stogov [Wed, 24 Mar 2021 07:36:47 +0000 (10:36 +0300)]
Replace function with macro

3 years agoDo not check exact values of unstable metrices in FPM status test
Jakub Zelenka [Tue, 23 Mar 2021 22:10:30 +0000 (22:10 +0000)]
Do not check exact values of unstable metrices in FPM status test

3 years agoMove system independent code out from x86 specific header
Dmitry Stogov [Tue, 23 Mar 2021 14:12:15 +0000 (17:12 +0300)]
Move system independent code out from x86 specific header

3 years agoMove x86 dependent code out from platform independed parts.
Dmitry Stogov [Tue, 23 Mar 2021 13:39:51 +0000 (16:39 +0300)]
Move x86 dependent code out from platform independed parts.

3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Tue, 23 Mar 2021 12:14:49 +0000 (13:14 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Properly initialize PS(mod) on RINIT

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Tue, 23 Mar 2021 12:13:43 +0000 (13:13 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Properly initialize PS(mod) on RINIT

3 years agoProperly initialize PS(mod) on RINIT
Christoph M. Becker [Mon, 22 Mar 2021 12:21:07 +0000 (13:21 +0100)]
Properly initialize PS(mod) on RINIT

We need to do that in case a user handler has been set.  However, we
can't do that in `php_rinit_session_globals()` since that function is
called by PHP function `session_destroy()` too, but in that case we
don't want to reset PS(mod).

Closes GH-6795.

3 years agoUse capstone disassembler, if available.
Dmitry Stogov [Tue, 23 Mar 2021 09:39:42 +0000 (12:39 +0300)]
Use capstone disassembler, if available.

3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Mon, 22 Mar 2021 21:51:12 +0000 (22:51 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #80889: amendment

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Mon, 22 Mar 2021 21:49:46 +0000 (22:49 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80889: amendment

3 years agoFix types in FPM status openmetrics format
Jakub Zelenka [Mon, 22 Mar 2021 21:32:15 +0000 (21:32 +0000)]
Fix types in FPM status openmetrics format

3 years agoFix #80889: amendment
Christoph M. Becker [Mon, 22 Mar 2021 21:14:01 +0000 (22:14 +0100)]
Fix #80889: amendment

`session_set_save_handler()` may be called with callables instead of an
object; we need to cater to that as well.

We also extract a set_user_save_handler_ini() function to avoid code
duplication.

Closes GH-6796.

3 years agoRevert "Use better function"
Nikita Popov [Mon, 22 Mar 2021 16:53:37 +0000 (17:53 +0100)]
Revert "Use better function"

This reverts commit 9162116a854fe37ce2c07a75b5ef7d797acba0ee.

This causes many "__HALT_COMPILER(); must be declared in a phar"
errors in phar tests on windows.

3 years agoMigrate skip checks to --EXTENSIONS--, p1
Max Semenik [Mon, 22 Mar 2021 13:10:15 +0000 (16:10 +0300)]
Migrate skip checks to --EXTENSIONS--, p1

For rationale, see https://github.com/php/php-src/pull/6787

Extensions migrated in this part:
* bcmath
* bz2
* calendar
* com_dotnet
* ctype

Closes GH-6797.

3 years agostrtr() optimization
Dmitry Stogov [Mon, 22 Mar 2021 14:37:11 +0000 (17:37 +0300)]
strtr() optimization

3 years agoFix const warning
Nikita Popov [Mon, 22 Mar 2021 14:19:06 +0000 (15:19 +0100)]
Fix const warning

3 years agoSupport VERIFY_RETURN_TYPE elision with unused operand
Nikita Popov [Mon, 22 Mar 2021 13:50:28 +0000 (14:50 +0100)]
Support VERIFY_RETURN_TYPE elision with unused operand

This handles the degenerate case where SCCP replaced the value in
the RETURN opcode with a constant, but the VERIFY_RETURN is still
there. We can still apply the same optimization, just don't need
to adjust the use list in this case.

The result is still sub-optimal in that a dead QM_ASSIGN is left
behind.

3 years agoUse zend_string* instead of char*
Dmitry Stogov [Mon, 22 Mar 2021 11:56:16 +0000 (14:56 +0300)]
Use zend_string* instead of char*

3 years agoUse better function
Dmitry Stogov [Mon, 22 Mar 2021 11:55:54 +0000 (14:55 +0300)]
Use better function

3 years agoRemove unused READDIR_R lock
Nikita Popov [Mon, 22 Mar 2021 09:48:59 +0000 (10:48 +0100)]
Remove unused READDIR_R lock

3 years agorun-tests: use the EXTENSIONS section for skipping
Max Semenik [Thu, 18 Mar 2021 11:53:14 +0000 (14:53 +0300)]
run-tests: use the EXTENSIONS section for skipping

Currently, most skip checks are just for making sure an extension is
available. Even with recent addition of skip caching, this makes tests
needlessly slow:
* Checks for the same extension in its tests can have small differences
  impacting cacheability.
* Even identical skip checks in two tests can still be executed twice if
  they're run by different workers.

To remedy this, I'm repurposing the existing --EXTENSIONS-- section of
.phpt files to specify wjich extensions are required for current test to
run. Current behavior:
1) If the extension is already visible to PHP, all is good
2) If it isn't, assume it's present as a shared module and attempt to add
   it via a command line parameter
3) If that works, all is good
4) If it doesn't, PHP fails with a cryptic error message trying to
   execute the test itself

After this commit:
1) and 2) are kept unchanged
3) Check if shared extension file from 2) is actually present
4) Skip the test if it isn't

Other benefits include clear skip reasons (vs. sometimes none in many
current skip checks) and moving test information from code to metadata,
opening more opportunities for search and analysis.

Since --EXTENSIONS-- is barely ever used, this change poses no risk of
hidden failures.

As a demonstration of the new approach, this commit migrates one
extension to it. If merged, I will migrate other extensions in
subsequent PRs.

Closes GH-6787.

3 years agoMerge branch 'PHP-8.0'
Jakub Zelenka [Sun, 21 Mar 2021 21:21:38 +0000 (21:21 +0000)]
Merge branch 'PHP-8.0'

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Jakub Zelenka [Sun, 21 Mar 2021 21:21:05 +0000 (21:21 +0000)]
Merge branch 'PHP-7.4' into PHP-8.0

3 years agoUse ServerClientTestCase in a test for default_socket_timeout=-1
Jakub Zelenka [Fri, 27 Nov 2020 17:29:23 +0000 (17:29 +0000)]
Use ServerClientTestCase in a test for default_socket_timeout=-1

3 years agoMerge branch 'PHP-8.0'
Jakub Zelenka [Sun, 21 Mar 2021 19:01:50 +0000 (19:01 +0000)]
Merge branch 'PHP-8.0'

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Jakub Zelenka [Sun, 21 Mar 2021 19:00:38 +0000 (19:00 +0000)]
Merge branch 'PHP-7.4' into PHP-8.0

3 years agoFix NEWS entry position for the latest FPM fix
Jakub Zelenka [Sun, 21 Mar 2021 18:58:57 +0000 (18:58 +0000)]
Fix NEWS entry position for the latest FPM fix

3 years agoFix bug #80024: Duplication of info about inherited socket after pool removing
Jakub Zelenka [Sun, 28 Feb 2021 21:08:17 +0000 (21:08 +0000)]
Fix bug #80024: Duplication of info about inherited socket after pool removing

3 years agoUpdate NEWS for FPM process renaming on macOS
Jakub Zelenka [Sun, 21 Mar 2021 18:42:55 +0000 (18:42 +0000)]
Update NEWS for FPM process renaming on macOS

3 years agofpm master/child process rename, enable on mac os.
David CARLIER [Mon, 15 Feb 2021 21:00:38 +0000 (21:00 +0000)]
fpm master/child process rename, enable on mac os.

Note the change appears mainly in command like ps.

3 years agoUpadate NEWS and UPRADING with info about FPM openmetrics format addition
Jakub Zelenka [Sun, 21 Mar 2021 18:32:19 +0000 (18:32 +0000)]
Upadate NEWS and UPRADING with info about FPM openmetrics format addition

3 years agoFix indent in FPM openmetrics status
Jakub Zelenka [Sun, 21 Mar 2021 18:24:46 +0000 (18:24 +0000)]
Fix indent in FPM openmetrics status

3 years agoAdd support for openmetrics formatting to FPM status
Cees-Jan Kiewiet [Tue, 9 Jun 2020 14:01:57 +0000 (16:01 +0200)]
Add support for openmetrics formatting to FPM status

3 years agoConvert resources to objects in ext/ldap
Máté Kocsis [Sat, 13 Mar 2021 11:11:40 +0000 (12:11 +0100)]
Convert resources to objects in ext/ldap

Closes GH-6770

3 years agoUse zend_hash_lookup()
Dmitry Stogov [Fri, 19 Mar 2021 20:34:38 +0000 (23:34 +0300)]
Use zend_hash_lookup()

3 years agoAdd zend_hash_lookup() and zend_hash_index_lookup() functions.
Dmitry Stogov [Fri, 19 Mar 2021 19:36:24 +0000 (22:36 +0300)]
Add zend_hash_lookup() and zend_hash_index_lookup() functions.
Thet search for an element with given key/index and add an empty one (NULL), if no found.

3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Fri, 19 Mar 2021 16:05:32 +0000 (17:05 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #80889: Cannot set save handler when save_handler is invalid

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Fri, 19 Mar 2021 16:03:35 +0000 (17:03 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80889: Cannot set save handler when save_handler is invalid

3 years agoFix #80889: Cannot set save handler when save_handler is invalid
Christoph M. Becker [Fri, 19 Mar 2021 13:47:49 +0000 (14:47 +0100)]
Fix #80889: Cannot set save handler when save_handler is invalid

There is no need to require a (valid) save_handler to be set, when a
user handler is supposed to be set.  We just have to make sure, that
no user handler is already set in this case.

Closes GH-6788.

3 years agoFix handling of unknown class in trait precedence list
Nikita Popov [Fri, 19 Mar 2021 15:04:16 +0000 (16:04 +0100)]
Fix handling of unknown class in trait precedence list

Fixes oss-fuzz #31983.

3 years agomicro-optimization
Dmitry Stogov [Fri, 19 Mar 2021 13:57:42 +0000 (16:57 +0300)]
micro-optimization

3 years agoInstall de_DE locale on azure
Nikita Popov [Thu, 18 Mar 2021 09:56:02 +0000 (10:56 +0100)]
Install de_DE locale on azure

3 years agoSupport prototypes in call graph
Nikita Popov [Thu, 18 Mar 2021 14:40:48 +0000 (15:40 +0100)]
Support prototypes in call graph

Even if we don't know the exact method being called, include it
in the call graph with the is_prototype flag. In particular, we
can still make use of return types from prototype methods, as
PHP 8 makes LSP violations a hard error.

Most other places are adjusted to skip calls with !is_prototype.
Maybe some of them would be fine, but ignoring them is conservative.

3 years agoXFAIL on WIN64 because of problem in libffi
Dmitry Stogov [Fri, 19 Mar 2021 09:19:24 +0000 (12:19 +0300)]
XFAIL on WIN64 because of problem in libffi

3 years agoAdd missing rc1/rcn to return type initialization
Nikita Popov [Fri, 19 Mar 2021 09:04:56 +0000 (10:04 +0100)]
Add missing rc1/rcn to return type initialization

3 years agoAllow inferring narrowed return type
Nikita Popov [Thu, 18 Mar 2021 16:11:56 +0000 (17:11 +0100)]
Allow inferring narrowed return type

Even if an explicit return type is given, we might still infer
a more narrow one based on return statements. We shouldn't
pessimize this just because a type has been declared.

3 years agoUpdate one more use of NO_AUTOLOAD
Nikita Popov [Thu, 18 Mar 2021 15:25:06 +0000 (16:25 +0100)]
Update one more use of NO_AUTOLOAD

3 years agoUpdate mysqli stub hash
Máté Kocsis [Thu, 18 Mar 2021 15:09:25 +0000 (16:09 +0100)]
Update mysqli stub hash

3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Thu, 18 Mar 2021 14:31:23 +0000 (15:31 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #80783: PDO ODBC truncates BLOB records at every 256th byte

3 years agoUpdate opt test
Nikita Popov [Thu, 18 Mar 2021 14:25:40 +0000 (15:25 +0100)]
Update opt test

And fix a type in the fetch class flags dumping while here.

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Thu, 18 Mar 2021 14:16:01 +0000 (15:16 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #80783: PDO ODBC truncates BLOB records at every 256th byte

3 years agoDon't imply SILENT from NO_AUTOLOAD
Nikita Popov [Thu, 18 Mar 2021 14:15:21 +0000 (15:15 +0100)]
Don't imply SILENT from NO_AUTOLOAD

We have separate flags for non-autoloading class fetches and
silent class fetches. There's no reason why NO_AUTOLOAD should
be special-cased to be implicitly silent.

3 years agoFix #80783: PDO ODBC truncates BLOB records at every 256th byte
Christoph M. Becker [Thu, 25 Feb 2021 13:38:42 +0000 (14:38 +0100)]
Fix #80783: PDO ODBC truncates BLOB records at every 256th byte

It is not guaranteed, that the driver inserts only a single NUL byte at
the end of the buffer.  Apparently, there is no way to find out the
actual data length in the buffer after calling `SQLGetData()`, so we
adjust after the next `SQLGetData()` call.

We also prevent PDO::ODBC_ATTR_ASSUME_UTF8 from fetching garbage, by
fetching all chunks with the same C type.

Closes GH-6716.

3 years agoMerge branch 'PHP-8.0'
Dmitry Stogov [Thu, 18 Mar 2021 13:16:29 +0000 (16:16 +0300)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Additional fix for bug #80847. On x86_64 part of structure may be passed in CPU registers.

3 years agoAdditional fix for bug #80847.
Dmitry Stogov [Thu, 18 Mar 2021 13:13:42 +0000 (16:13 +0300)]
Additional fix for bug #80847.
On x86_64 part of structure may be passed in CPU registers.

3 years ago"zend-test" was renamed to "zend_test"
Dmitry Stogov [Thu, 18 Mar 2021 11:36:46 +0000 (14:36 +0300)]
"zend-test" was renamed to "zend_test"

3 years agoMerge branch 'PHP-8.0'
Nikita Popov [Thu, 18 Mar 2021 09:51:04 +0000 (10:51 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix locale switch back to C in pcre

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Nikita Popov [Thu, 18 Mar 2021 09:50:57 +0000 (10:50 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix locale switch back to C in pcre

3 years agoFix locale switch back to C in pcre
Nikita Popov [Thu, 18 Mar 2021 09:48:43 +0000 (10:48 +0100)]
Fix locale switch back to C in pcre

The compile context is shared between patterns, so we need to set
the character tables unconditionally in case we switched from
a non-C locale to the C locale.

3 years agoDestroy constant values before object store
Nikita Popov [Thu, 18 Mar 2021 09:14:32 +0000 (10:14 +0100)]
Destroy constant values before object store

Now that constants can contain objects (currently only enums),
we should destroy them before we free the object store, otherwise
there will be false positive leak reports.

This doesn't affect the fast_shutdown sequence.

3 years agoDeprecate OO style mysqli::get_client_info method
Dharman [Sat, 13 Mar 2021 17:34:33 +0000 (17:34 +0000)]
Deprecate OO style mysqli::get_client_info method

Deprecate passing connection object to mysqli_get_client_info()

Closes GH-6777.

3 years agoMerge branch 'PHP-8.0'
Dmitry Stogov [Wed, 17 Mar 2021 20:00:22 +0000 (23:00 +0300)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fixed bug #80861 (erronous array key overflow in 2D array with JIT)

3 years agoFixed bug #80861 (erronous array key overflow in 2D array with JIT)
Dmitry Stogov [Wed, 17 Mar 2021 19:59:59 +0000 (22:59 +0300)]
Fixed bug #80861 (erronous array key overflow in 2D array with JIT)

3 years agoAdd enums to UPGRADING [ci skip]
Ilija Tovilo [Wed, 17 Mar 2021 18:15:35 +0000 (19:15 +0100)]
Add enums to UPGRADING [ci skip]

3 years agoImplement enums
Ilija Tovilo [Wed, 10 Jun 2020 21:10:18 +0000 (23:10 +0200)]
Implement enums

RFC: https://wiki.php.net/rfc/enumerations

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
Closes GH-6489.

3 years agoUse zend_string_equals() API instead of strcmp() in various places
George Peter Banyard [Wed, 17 Mar 2021 11:50:54 +0000 (11:50 +0000)]
Use zend_string_equals() API instead of strcmp() in various places

Closes GH-6784

3 years agoUse zend_string_equals() API instead of strcmp() in COM extension
George Peter Banyard [Wed, 17 Mar 2021 11:55:54 +0000 (11:55 +0000)]
Use zend_string_equals() API instead of strcmp() in COM extension

3 years agoUse zend_string_equals() API instead of strcmp() in Date extension
George Peter Banyard [Wed, 17 Mar 2021 11:41:08 +0000 (11:41 +0000)]
Use zend_string_equals() API instead of strcmp() in Date extension

3 years agoUse zend_string_equals() API instead of strcmp() in Filter extension
George Peter Banyard [Wed, 17 Mar 2021 11:32:02 +0000 (11:32 +0000)]
Use zend_string_equals() API instead of strcmp() in Filter extension

3 years agoUse zend_string_equals() API instead of strcmp() in PGSQL extension
George Peter Banyard [Wed, 17 Mar 2021 11:26:22 +0000 (11:26 +0000)]
Use zend_string_equals() API instead of strcmp() in PGSQL extension

And tiny drive by refactor at the same time for more usages

3 years agoUse zend_string_equals() API instead of strcmp() in SOAP extension
George Peter Banyard [Wed, 17 Mar 2021 11:23:02 +0000 (11:23 +0000)]
Use zend_string_equals() API instead of strcmp() in SOAP extension

3 years agoUse zend_string_equals() API instead of strcmp() in main.c
George Peter Banyard [Wed, 17 Mar 2021 11:22:49 +0000 (11:22 +0000)]
Use zend_string_equals() API instead of strcmp() in main.c

3 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 17 Mar 2021 15:34:18 +0000 (16:34 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix signed/unsigned warnings in PDO ODBC

3 years agoFix signed/unsigned warnings in PDO ODBC
Nikita Popov [Mon, 14 Dec 2020 09:02:25 +0000 (10:02 +0100)]
Fix signed/unsigned warnings in PDO ODBC

Add add skipif to test.

(cherry picked from commit aa58db723221ec891d4432621003bfa55dc15edf)

3 years agoUse absolute paths in tokenizer_data_gen.php
Nikita Popov [Wed, 17 Mar 2021 14:53:33 +0000 (15:53 +0100)]
Use absolute paths in tokenizer_data_gen.php

To make it work with out-of-tree builds.

3 years agoInitalize return_value before use
Christoph M. Becker [Wed, 17 Mar 2021 14:09:18 +0000 (15:09 +0100)]
Initalize return_value before use

Otherwise we likely segfault[1].  We fix the same issue for
PDO_Firebird as well.

[1] <https://ci.appveyor.com/project/php/php-src/builds/38267250/job/6y3ngn1k6ryxx6j3?fullLog=true#L9783>

Closes GH-6785.

3 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 17 Mar 2021 14:09:26 +0000 (15:09 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  imagecolortransparent() cannot return null

3 years agoimagecolortransparent() cannot return null
Nikita Popov [Wed, 17 Mar 2021 14:09:06 +0000 (15:09 +0100)]
imagecolortransparent() cannot return null

3 years agoMerge branch 'PHP-8.0'
Nikita Popov [Wed, 17 Mar 2021 14:06:46 +0000 (15:06 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Return bool from imageinterlace()

3 years agoReturn bool from imageinterlace()
Nikita Popov [Wed, 17 Mar 2021 14:05:09 +0000 (15:05 +0100)]
Return bool from imageinterlace()

The function accepts a bool since PHP 8.0, so it should also return
a bool to keep things consistent.

Furthermore a null return from this functions is not possible.

3 years agoMerge branch 'PHP-8.0'
Dmitry Stogov [Wed, 17 Mar 2021 13:55:42 +0000 (16:55 +0300)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fixed bug #80839 (PHP problem with JIT)

3 years agoFixed bug #80839 (PHP problem with JIT)
Dmitry Stogov [Wed, 17 Mar 2021 13:55:09 +0000 (16:55 +0300)]
Fixed bug #80839 (PHP problem with JIT)

3 years agoFix CLANG/RELEASE build (this is a workaround for probable bug in CLANG)
Dmitry Stogov [Wed, 17 Mar 2021 12:50:36 +0000 (15:50 +0300)]
Fix CLANG/RELEASE build (this is a workaround for probable bug in CLANG)

3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Wed, 17 Mar 2021 11:40:40 +0000 (12:40 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fix #66783: UAF when appending DOMDocument to element

3 years agoMerge branch 'PHP-7.4' into PHP-8.0
Christoph M. Becker [Wed, 17 Mar 2021 11:39:06 +0000 (12:39 +0100)]
Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
  Fix #66783: UAF when appending DOMDocument to element

3 years agoFix #66783: UAF when appending DOMDocument to element
Christoph M. Becker [Mon, 15 Mar 2021 09:26:50 +0000 (10:26 +0100)]
Fix #66783: UAF when appending DOMDocument to element

According to the DOM standard, elements may only contain element, text,
processing instruction and comment nodes[1].  It is also specified that
a HierarchyRequestError should be thrown if a document is to be
inserted[2].  We follow that standard, and prevent the use-after-free
this way.

[1] <https://dom.spec.whatwg.org/#node-trees>
[2] <https://dom.spec.whatwg.org/#mutation-algorithms>

Closes GH-6765.

3 years agoAvoid unnecessary static_variables persistence
Nikita Popov [Wed, 17 Mar 2021 11:19:09 +0000 (12:19 +0100)]
Avoid unnecessary static_variables persistence

static_variables should be treated the same way as all other
op_array components nowadays (only static_variables_ptr is
special). There's no need to persist/serialize it is separately
per shared op_array.

3 years agoMerge branch 'PHP-8.0'
Christoph M. Becker [Wed, 17 Mar 2021 11:15:35 +0000 (12:15 +0100)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  8.0.5 is next

3 years ago8.0.5 is next
Christoph M. Becker [Wed, 17 Mar 2021 11:12:01 +0000 (12:12 +0100)]
8.0.5 is next

We also move the NEWS entry for bug 80847 to the proper version.

3 years agoSimplify attribute persistence
Nikita Popov [Wed, 17 Mar 2021 10:51:23 +0000 (11:51 +0100)]
Simplify attribute persistence

For an inherited op_array, directly fetch the xlat entry, as we
do for everything else.

3 years agoFix PDO test under libmysqlclient
Nikita Popov [Wed, 17 Mar 2021 10:26:41 +0000 (11:26 +0100)]
Fix PDO test under libmysqlclient

3 years agoDeclare PDORow::queryString property
Máté Kocsis [Wed, 17 Mar 2021 08:39:54 +0000 (09:39 +0100)]
Declare PDORow::queryString property

Relates GH-6742

3 years agoMerge branch 'PHP-8.0'
Dmitry Stogov [Wed, 17 Mar 2021 06:56:07 +0000 (09:56 +0300)]
Merge branch 'PHP-8.0'

* PHP-8.0:
  Fixed bug #80847 (CData structs with fields of type struct can't be passed as C function argument)

3 years agoFixed bug #80847 (CData structs with fields of type struct can't be passed as C funct...
Dmitry Stogov [Wed, 17 Mar 2021 06:55:20 +0000 (09:55 +0300)]
Fixed bug #80847 (CData structs with fields of type struct can't be passed as C function argument)

3 years agoAdd API to fetch bool value for PDO attribute values
George Peter Banyard [Mon, 15 Mar 2021 16:26:04 +0000 (16:26 +0000)]
Add API to fetch bool value for PDO attribute values

Closes GH-6766