]> granicus.if.org Git - php/log
php
4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 2 Mar 2020 09:46:31 +0000 (10:46 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79332: php_istreams are never freed

4 years agoFix #79332: php_istreams are never freed
Christoph M. Becker [Mon, 2 Mar 2020 09:45:37 +0000 (10:45 +0100)]
Fix #79332: php_istreams are never freed

Releasing the `com_dotnet_istream_wrapper` in `istream_destructor()` is
pointless, since `istream_destructor()` is only called when the
resource is going to be released.  This recursion is not a real issue,
though, since the resource is never exposed to userland, and has at
most refcount 1, so due to well defined unsigned integer underflow, it
never is released twice.  However, returning early in this case causes
a memory leak which needs to be fixed.

4 years agoRemove generated lexer
Nikita Popov [Fri, 28 Feb 2020 16:25:47 +0000 (17:25 +0100)]
Remove generated lexer

Accidentially committed this when merging from 7.3.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 28 Feb 2020 16:07:36 +0000 (17:07 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fixed bug #79062

4 years agoFixed bug #79062
Nikita Popov [Fri, 28 Feb 2020 16:06:05 +0000 (17:06 +0100)]
Fixed bug #79062

Back up the doc comment when performing heredoc scanahead.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 28 Feb 2020 14:44:34 +0000 (15:44 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79311: enchant_dict_suggest() fails on big endian architecture

4 years agoFix #79311: enchant_dict_suggest() fails on big endian architecture
Christoph M. Becker [Fri, 28 Feb 2020 12:18:00 +0000 (13:18 +0100)]
Fix #79311: enchant_dict_suggest() fails on big endian architecture

For obvious reasons, we must not assign a `size_t` value to an `int`
variable using memcpy().  However, there is actually no need for the
intermediate `n_sugg_st` here, if we use the proper types in the first
place.

A regression test is not necessary, because dict_suggest.phpt already
exhibits the erroneous behavior on big endian architectures.

4 years agoTry to fix msvc build
Nikita Popov [Fri, 28 Feb 2020 13:48:02 +0000 (14:48 +0100)]
Try to fix msvc build

4 years agoFix another flaky FPM test
Nikita Popov [Fri, 28 Feb 2020 13:40:21 +0000 (14:40 +0100)]
Fix another flaky FPM test

4 years agoTry to fix intermittent FPM failures
Nikita Popov [Fri, 28 Feb 2020 12:19:10 +0000 (13:19 +0100)]
Try to fix intermittent FPM failures

Terminate only after expecting the log lines to avoid race
condition.

4 years agoFixed bug #79252
Nikita Popov [Fri, 28 Feb 2020 11:47:56 +0000 (12:47 +0100)]
Fixed bug #79252

4 years agofix test
Remi Collet [Fri, 28 Feb 2020 09:39:08 +0000 (10:39 +0100)]
fix test

4 years agoNEWS
Remi Collet [Fri, 28 Feb 2020 09:36:12 +0000 (10:36 +0100)]
NEWS

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Fri, 28 Feb 2020 09:35:39 +0000 (10:35 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79315 ZipArchive::addFile doesn't honor start/length parameters

4 years agoFix #79315 ZipArchive::addFile doesn't honor start/length parameters
Remi Collet [Fri, 28 Feb 2020 09:21:19 +0000 (10:21 +0100)]
Fix #79315 ZipArchive::addFile doesn't honor start/length parameters

4 years agoUse type-checked ref assignment in UConverter
Nikita Popov [Fri, 28 Feb 2020 09:21:50 +0000 (10:21 +0100)]
Use type-checked ref assignment in UConverter

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Dmitry Stogov [Thu, 27 Feb 2020 20:38:09 +0000 (23:38 +0300)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fixed incorrect overflow detection

4 years agoFixed incorrect overflow detection
Dmitry Stogov [Thu, 27 Feb 2020 20:37:41 +0000 (23:37 +0300)]
Fixed incorrect overflow detection

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 27 Feb 2020 09:36:59 +0000 (10:36 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Add upgrading node regarding fix for bug #79271

4 years agoAdd upgrading node regarding fix for bug #79271
Christoph M. Becker [Thu, 27 Feb 2020 09:32:24 +0000 (10:32 +0100)]
Add upgrading node regarding fix for bug #79271

Cf. <https://github.com/php/php-src/pull/5180#issuecomment-590259750>ff.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Dmitry Stogov [Thu, 27 Feb 2020 09:27:58 +0000 (12:27 +0300)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fixed incorrect behavior of internal memory debugger

4 years agoFixed incorrect behavior of internal memory debugger
Dmitry Stogov [Thu, 27 Feb 2020 09:27:22 +0000 (12:27 +0300)]
Fixed incorrect behavior of internal memory debugger

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 27 Feb 2020 08:38:55 +0000 (09:38 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #64032: mysqli reports different client_version

4 years agoFix #64032: mysqli reports different client_version
Christoph M. Becker [Wed, 26 Feb 2020 17:33:25 +0000 (18:33 +0100)]
Fix #64032: mysqli reports different client_version

While `mysqli_get_client_version()` calls `mysql_get_client_version()`
to retrieve the client version, `mysql::$client_version` is initialized
to `MYSQL_VERSION_ID`.  Both should match though, and since the former
is the more useful information, we fix `mysql::$client_version`.

We do not add a regression test, because it would usually succeed
anyway, and we already have several tests with respective `assert()`s.

4 years agoAdd test for bug #60161
Nikita Popov [Wed, 26 Feb 2020 15:48:03 +0000 (16:48 +0100)]
Add test for bug #60161

This has been fixed in PHP 7.4, let's make sure it stays fixed.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 25 Feb 2020 11:44:01 +0000 (12:44 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #63206: Fully support error/exception_handler stacking, even with null or inside the handler

4 years agoFix #63206: Fully support error/exception_handler stacking, even with null or inside...
Mark Plomer [Mon, 24 Feb 2020 20:32:02 +0000 (21:32 +0100)]
Fix #63206: Fully support error/exception_handler stacking, even with null or inside the handler

Always push the current user_error/exception_handler to the stack,
even when it is empty, so restore_error_handler() always works as
expected.

The user_error_handler is especially temporarily empty when we are inside
the error handler, which caused inconsistent behaviour before.

4 years agoEnable ext/sodium in CI
Nikita Popov [Mon, 24 Feb 2020 10:00:58 +0000 (11:00 +0100)]
Enable ext/sodium in CI

4 years agoAdd skipif for argon2id in test
Nikita Popov [Mon, 24 Feb 2020 10:59:46 +0000 (11:59 +0100)]
Add skipif for argon2id in test

If argon2i is provided by libargon, then argon2id may not be
available here.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 24 Feb 2020 09:20:43 +0000 (10:20 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Don't treat any WS as start of header

4 years agoDon't treat any WS as start of header
Nikita Popov [Mon, 24 Feb 2020 09:19:58 +0000 (10:19 +0100)]
Don't treat any WS as start of header

Check that the header occurs after \n, not other whitespace
characters.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 24 Feb 2020 09:03:30 +0000 (10:03 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Reduce code duplication in HTTP header checks

4 years agoReduce code duplication in HTTP header checks
Nikita Popov [Mon, 24 Feb 2020 08:58:29 +0000 (09:58 +0100)]
Reduce code duplication in HTTP header checks

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 24 Feb 2020 08:50:57 +0000 (09:50 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fixes #79265: Improper injection of Host header when using fopen for http requests

4 years agoFixes #79265: Improper injection of Host header when using fopen for http requests
Miguel Xavier Penha Neto [Mon, 24 Feb 2020 05:04:37 +0000 (02:04 -0300)]
Fixes #79265: Improper injection of Host header when using fopen for http requests

Check all occurrences of the string "host:" (and other headers),
not just the first one.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Sun, 23 Feb 2020 22:33:28 +0000 (23:33 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79299: com_print_typeinfo prints duplicate variables

4 years agoFix #79299: com_print_typeinfo prints duplicate variables
Christoph M. Becker [Sun, 23 Feb 2020 22:23:12 +0000 (23:23 +0100)]
Fix #79299: com_print_typeinfo prints duplicate variables

`lastid` has to retain its value during the traversal, so we move it to
an outer scope.

Patch contributed by Litiano Moura.

4 years agoFix bug #79014 (PHP-FPM & Primary script unknown)
Jakub Zelenka [Sun, 23 Feb 2020 19:14:05 +0000 (19:14 +0000)]
Fix bug #79014 (PHP-FPM & Primary script unknown)

4 years agoFix bug #77653 (operator displayed instead of the real error message)
Jakub Zelenka [Sun, 9 Feb 2020 19:40:25 +0000 (19:40 +0000)]
Fix bug #77653 (operator displayed instead of the real error message)

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 21 Feb 2020 12:37:14 +0000 (13:37 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79294: ::columnType() may fail after SQLite3Stmt::reset()

4 years agoFix #79294: ::columnType() may fail after SQLite3Stmt::reset()
Christoph M. Becker [Fri, 21 Feb 2020 12:24:37 +0000 (13:24 +0100)]
Fix #79294: ::columnType() may fail after SQLite3Stmt::reset()

The fix for feature request #53466 did not properly handle resetting of
the corresponding statement; the problem with this is that the
statement does not know about its result sets.  But even if we could
fix this, the `complete` handling still appears to be brittle, since
the `sqlite3_column_type()`docs[1] state:

| If the SQL statement does not currently point to a valid row, or if
| the column index is out of range, the result is undefined.

Fortunately, we can use `sqlite3_data_count()` instead, since[2]:

| If prepared statement P does not have results ready to return (via
| calls to the sqlite3_column() family of interfaces) then
| sqlite3_data_count(P) returns 0.

Thus, we guard `SQLite3::columnType()` with `sqlite3_data_count()`, and
completely drop updating the `php_sqlite3_result_object.complete`
field, but keep it for ABI BC purposes.

[1] <https://www.sqlite.org/c3ref/column_blob.html>
[2] <https://www.sqlite.org/c3ref/data_count.html>

4 years agoDon't use asm arithmetic under msan
Nikita Popov [Sun, 29 Sep 2019 09:33:45 +0000 (11:33 +0200)]
Don't use asm arithmetic under msan

Clang 9 supports asm goto, so these no longer get automatically
skipped.

(cherry picked from commit 33bf1495b215d555d45ec638376bd434d8a038b3)

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 21 Feb 2020 09:32:45 +0000 (10:32 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Add test for bug #78569

4 years agoAdd test for bug #78569
Christoph M. Becker [Fri, 21 Feb 2020 09:30:51 +0000 (10:30 +0100)]
Add test for bug #78569

4 years agoUpdate Ubuntu version on Azure
Nikita Popov [Thu, 20 Feb 2020 14:05:04 +0000 (15:05 +0100)]
Update Ubuntu version on Azure

The i386 and community jobs were still on 16.04, update them to
18.04.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 20 Feb 2020 09:56:29 +0000 (10:56 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix NEWS [ci skip]

4 years agoFix NEWS [ci skip]
Christoph M. Becker [Thu, 20 Feb 2020 09:55:17 +0000 (10:55 +0100)]
Fix NEWS [ci skip]

Cosmetics.

4 years agoDon't use VLA in mysqlnd auth
Nikita Popov [Tue, 18 Feb 2020 15:17:34 +0000 (16:17 +0100)]
Don't use VLA in mysqlnd auth

We use alloca instead of VLA. This should also allow building
this code on Windows.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 18 Feb 2020 10:10:34 +0000 (11:10 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Remove extra tab in NEWS [ci skip]

4 years agoRemove extra tab in NEWS [ci skip]
Christoph M. Becker [Tue, 18 Feb 2020 10:09:37 +0000 (11:09 +0100)]
Remove extra tab in NEWS [ci skip]

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Tue, 18 Feb 2020 10:01:07 +0000 (11:01 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  bump version to 7.2.29

4 years agoMerge branch 'PHP-7.2' into PHP-7.3
Remi Collet [Tue, 18 Feb 2020 10:00:49 +0000 (11:00 +0100)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  bump version to 7.2.29

4 years agobump version to 7.2.29
Remi Collet [Tue, 18 Feb 2020 10:00:28 +0000 (11:00 +0100)]
bump version to 7.2.29

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 17 Feb 2020 21:53:50 +0000 (22:53 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79038: PDOStatement::nextRowset() leaks column values

4 years agoFix #79038: PDOStatement::nextRowset() leaks column values
Christoph M. Becker [Fri, 27 Dec 2019 12:20:11 +0000 (13:20 +0100)]
Fix #79038: PDOStatement::nextRowset() leaks column values

Firstly, we must not rely on `stmt->column_count` when freeing the
driver specific column values, but rather store the column count in
the driver data.  Since the column count is a `short`, 16 bit are
sufficient, so we can store it in reserved bits of `pdo_odbc_stmt`.

Furthermore, we must not allocate new column value storage when the
statement is not executed, but rather when the column value storage has
not been allocated.

Finally, we have to introduce a driver specific `cursor_closer` to
avoid that `::closeCursor()` calls `odbc_stmt_next_rowset()` which then
frees the column value storage, because it may be still needed for
bound columns.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 17 Feb 2020 18:36:07 +0000 (19:36 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix NEWS [ci skip]

4 years agoFix NEWS [ci skip]
Christoph M. Becker [Mon, 17 Feb 2020 18:35:42 +0000 (19:35 +0100)]
Fix NEWS [ci skip]

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 17 Feb 2020 18:24:04 +0000 (19:24 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Update NEWS [ci skip]

4 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Mon, 17 Feb 2020 18:22:15 +0000 (19:22 +0100)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Update NEWS [ci skip]

4 years agoUpdate NEWS [ci skip]
Christoph M. Becker [Mon, 17 Feb 2020 18:21:51 +0000 (19:21 +0100)]
Update NEWS [ci skip]

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 17 Feb 2020 18:08:22 +0000 (19:08 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix # 79171: heap-buffer-overflow in phar_extract_file
  Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions
  Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
  Mark bug76348.phpt as online test
  Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions
  Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress

4 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Mon, 17 Feb 2020 18:08:04 +0000 (19:08 +0100)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Mark bug76348.phpt as online test
  Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions
  Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress

4 years agoCreate a new console for each test worker on Windows
Christoph M. Becker [Wed, 12 Feb 2020 13:34:48 +0000 (14:34 +0100)]
Create a new console for each test worker on Windows

The primary motivation to have each test worker running its own console
is to allow the windows_mb_path tests to run in parallel.  A nice side
effect is that this also prevents changing the code page of the
tester's console window (which can even cause its font to be changed).

To be able to do so, we introduce the `create_new_console` option for
`proc_open()`, which might occasionally be useful for other purposes
than testing.

4 years agoDisable instantiation of zero size FFI\CData objects
Dmitry Stogov [Mon, 17 Feb 2020 09:48:55 +0000 (12:48 +0300)]
Disable instantiation of zero size FFI\CData objects

4 years agoFix # 79171: heap-buffer-overflow in phar_extract_file
Christoph M. Becker [Sun, 26 Jan 2020 15:03:35 +0000 (16:03 +0100)]
Fix # 79171: heap-buffer-overflow in phar_extract_file

We must not access memory outside of the allocated buffer.

4 years agoFix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access...
Stanislav Malyshev [Sun, 16 Feb 2020 06:17:14 +0000 (22:17 -0800)]
Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions

4 years agoFix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
Stanislav Malyshev [Sun, 16 Feb 2020 04:52:19 +0000 (20:52 -0800)]
Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress

4 years agoFix # 79171: heap-buffer-overflow in phar_extract_file
Christoph M. Becker [Sun, 26 Jan 2020 15:03:35 +0000 (16:03 +0100)]
Fix # 79171: heap-buffer-overflow in phar_extract_file

We must not access memory outside of the allocated buffer.

4 years agoFix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access...
Stanislav Malyshev [Sun, 16 Feb 2020 06:17:14 +0000 (22:17 -0800)]
Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions

4 years agoFix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
Stanislav Malyshev [Sun, 16 Feb 2020 04:52:19 +0000 (20:52 -0800)]
Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 17 Feb 2020 08:09:12 +0000 (09:09 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79271: DOMDocumentType::$childNodes is NULL

4 years agoFix #79271: DOMDocumentType::$childNodes is NULL
Christoph M. Becker [Fri, 14 Feb 2020 09:55:17 +0000 (10:55 +0100)]
Fix #79271: DOMDocumentType::$childNodes is NULL

Dom level 2 core, DOM level 3 core and the DOM living standard agree
that `childNodes` always return a `NodeList`, and never `null`.

4 years agoMark bug76348.phpt as online test
Nikita Popov [Tue, 19 Mar 2019 14:47:25 +0000 (15:47 +0100)]
Mark bug76348.phpt as online test

4 years agoFix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access...
Stanislav Malyshev [Sun, 16 Feb 2020 06:17:14 +0000 (22:17 -0800)]
Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions

4 years agoFix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
Stanislav Malyshev [Sun, 16 Feb 2020 04:52:19 +0000 (20:52 -0800)]
Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 14 Feb 2020 08:23:29 +0000 (09:23 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix typo in recent bugfix

4 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Fri, 14 Feb 2020 08:22:37 +0000 (09:22 +0100)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix typo in recent bugfix

4 years agoFix typo in recent bugfix
Christoph M. Becker [Fri, 14 Feb 2020 08:21:13 +0000 (09:21 +0100)]
Fix typo in recent bugfix

4 years agoFix Azure MacOS build
Nikita Popov [Thu, 13 Feb 2020 14:45:39 +0000 (15:45 +0100)]
Fix Azure MacOS build

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 13 Feb 2020 14:15:45 +0000 (15:15 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #77569: Write Acess Violation in DomImplementation

4 years agoMerge branch 'PHP-7.2' into PHP-7.3
Christoph M. Becker [Thu, 13 Feb 2020 14:14:45 +0000 (15:14 +0100)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #77569: Write Acess Violation in DomImplementation

4 years agoFix #77569: Write Acess Violation in DomImplementation
Christoph M. Becker [Thu, 13 Feb 2020 14:13:26 +0000 (15:13 +0100)]
Fix #77569: Write Acess Violation in DomImplementation

We must not assume that the zval IS_STRING.

4 years agoRemove value from comment in php.ini files
Michael Voříšek [Mon, 10 Feb 2020 11:03:57 +0000 (12:03 +0100)]
Remove value from comment in php.ini files

Closes GH-5164.

4 years agoFixed bug #79257
Nikita Popov [Tue, 11 Feb 2020 16:30:59 +0000 (17:30 +0100)]
Fixed bug #79257

Replace an existing entry for a given name only if we have a match.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 11 Feb 2020 10:50:42 +0000 (11:50 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79254: getenv() w/o arguments not showing changes

4 years agoFix #79254: getenv() w/o arguments not showing changes
Christoph M. Becker [Tue, 11 Feb 2020 08:43:15 +0000 (09:43 +0100)]
Fix #79254: getenv() w/o arguments not showing changes

To be able to see changes done only with `SetEnvironmentVariable()`, we
have to use `GetEnvironmentStrings()` instead of `environ`, because the
latter sees only changes done with `putenv()`.

For best backward compatibility we're using `GetEnvironmentStringsA()`;
switching to the wide string version likely makes sense for master,
though.

4 years agoRemove hint to security purpose of disable_functions
jsmmo [Wed, 5 Feb 2020 10:27:33 +0000 (11:27 +0100)]
Remove hint to security purpose of disable_functions

These features are not intended to offer security against a
determined attacher with full local code execution privileges.

Closes GH-5150.

4 years agoFixed bug #79244 (php crashes during parsing INI file). (Laruence)
Xinchen Hui [Mon, 10 Feb 2020 05:01:51 +0000 (13:01 +0800)]
Fixed bug #79244 (php crashes during parsing INI file). (Laruence)

Cherry-picked the fix(not sure why this wasn't merged to 7.4) for:
Fixed bug #77589 (Core dump using parse_ini_string with numeric sections)

Section name should not be typed(NULL, FALSE, TRUE etc)

Conflicts:

Zend/zend_ini_scanner.c

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Sat, 8 Feb 2020 16:06:34 +0000 (17:06 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79248: Traversing empty VT_ARRAY throws com_exception

4 years agoFix #79248: Traversing empty VT_ARRAY throws com_exception
Christoph M. Becker [Sat, 8 Feb 2020 15:56:30 +0000 (16:56 +0100)]
Fix #79248: Traversing empty VT_ARRAY throws com_exception

If the `VT_ARRAY` is empty, i.e. its upperbound is less than its lower
bound, we must not call `php_com_safearray_get_elem()`, because that
function throws in this case.

4 years agoFix #79247: Garbage collecting variant objects segfaults
Christoph M. Becker [Sat, 8 Feb 2020 09:58:15 +0000 (10:58 +0100)]
Fix #79247: Garbage collecting variant objects segfaults

variant objects have no (declared) properties, so the `get_properties`
handlers returns a pointer to constant storage for efficiency reasons.
This pointer must not be returned from the `get_gc` handler, though;
instead we set up an own `get_gc` handler and return NULL from it, to
signal that there are no properties to collect.

4 years agoUpdate bundled stdxx check macros
Anatol Belski [Sat, 8 Feb 2020 09:13:46 +0000 (10:13 +0100)]
Update bundled stdxx check macros

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 7 Feb 2020 20:10:44 +0000 (21:10 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Skip test case on x86 where it otherwise fails [ci skip]

4 years agoSkip test case on x86 where it otherwise fails [ci skip]
Christoph M. Becker [Fri, 7 Feb 2020 20:00:27 +0000 (21:00 +0100)]
Skip test case on x86 where it otherwise fails [ci skip]

`-2200000000` can't be converted to integer on x86, so the constructor
call would fail.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 7 Feb 2020 17:04:52 +0000 (18:04 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79242: COM error constants don't match com_exception codes

4 years agoFix #79242: COM error constants don't match com_exception codes
Christoph M. Becker [Fri, 7 Feb 2020 17:04:14 +0000 (18:04 +0100)]
Fix #79242: COM error constants don't match com_exception codes

Because a `HRESULT` is a `LONG`[1], no special treatment is required on
x86 platforms to get appropriate values.  On x64 platforms we prefer
positive values, what we could accomplish by casting the `HRESULT`
value to `ULONG` and then to `zend_long`, but since the current
behavior is correct and the performance improvement is negligible, we
defer that to master.

[1] <https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types#hresult>

4 years agoPCRE: Only remember valid UTF-8 if start offset zero
Nikita Popov [Fri, 7 Feb 2020 16:01:39 +0000 (17:01 +0100)]
PCRE: Only remember valid UTF-8 if start offset zero

PCRE only validates the string starting from the start offset
(minus maximum look-behind, but let's ignore that), so we can
only remember that the string is fully valid UTF-8 is the original
start offset is zero.

4 years agoPCRE: Check whether start offset is on char boundary
Nikita Popov [Fri, 7 Feb 2020 15:39:06 +0000 (16:39 +0100)]
PCRE: Check whether start offset is on char boundary

We need not just the whole string to be UTF-8, but the start
position to be on a character boundary as well. Check this by
looking for a continuation byte.

4 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 6 Feb 2020 14:00:39 +0000 (15:00 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #66322: COMPersistHelper::SaveToFile can save to wrong location

4 years agoFix #66322: COMPersistHelper::SaveToFile can save to wrong location
Christoph M. Becker [Thu, 6 Feb 2020 13:59:55 +0000 (14:59 +0100)]
Fix #66322: COMPersistHelper::SaveToFile can save to wrong location

Saving under the given `filename` may also work, but since
`::LoadFromFile` uses the `fullpath` we follow suit.