]> granicus.if.org Git - php/log
php
5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 8 Jan 2020 17:43:35 +0000 (18:43 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79078: Hypothetical use-after-free in curl_multi_add_handle()

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Wed, 8 Jan 2020 17:31:10 +0000 (18:31 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79078: Hypothetical use-after-free in curl_multi_add_handle()

5 years agoFix #79078: Hypothetical use-after-free in curl_multi_add_handle()
Christoph M. Becker [Wed, 8 Jan 2020 10:52:24 +0000 (11:52 +0100)]
Fix #79078: Hypothetical use-after-free in curl_multi_add_handle()

To avoid this, we have to verify the handlers already in
`curl_multi_add_handle()`, not only in `curl_multi_exec()`.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 8 Jan 2020 17:27:53 +0000 (18:27 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Bump version

5 years agoBump version
Christoph M. Becker [Wed, 8 Jan 2020 17:26:14 +0000 (18:26 +0100)]
Bump version

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Wed, 8 Jan 2020 15:56:28 +0000 (16:56 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Extract function

5 years agoExtract function
Christoph M. Becker [Wed, 8 Jan 2020 15:54:31 +0000 (16:54 +0100)]
Extract function

As suggested by Nikita[1].

[1] <https://github.com/php/php-src/pull/5045#discussion_r364265013>

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Wed, 8 Jan 2020 15:32:00 +0000 (16:32 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Revert "Display a message if select in FPM test timeouts"

5 years agoRevert "Display a message if select in FPM test timeouts"
Nikita Popov [Wed, 8 Jan 2020 15:31:33 +0000 (16:31 +0100)]
Revert "Display a message if select in FPM test timeouts"

This reverts commit e2361498d519561e7eb5b73d138c1eaa80da2a20.

Ooops, this occurs normally during some tests, but I didn't notice
because I have slow tests disabled...

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Wed, 8 Jan 2020 14:57:21 +0000 (15:57 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Display a message if select in FPM test timeouts

5 years agoDisplay a message if select in FPM test timeouts
Nikita Popov [Wed, 8 Jan 2020 14:56:37 +0000 (15:56 +0100)]
Display a message if select in FPM test timeouts

5 years agoFix #49555: Improve "function must be a string" error message
Nikita Popov [Wed, 8 Jan 2020 13:32:11 +0000 (14:32 +0100)]
Fix #49555: Improve "function must be a string" error message

Be more specific for the individual cases and provide relevant
type information.

5 years agoRefer to method rather than function name in error message
Nikita Popov [Wed, 8 Jan 2020 13:26:27 +0000 (14:26 +0100)]
Refer to method rather than function name in error message

5 years agoFix #65274: Add class name to undef class constant error
Nikita Popov [Wed, 8 Jan 2020 13:18:14 +0000 (14:18 +0100)]
Fix #65274: Add class name to undef class constant error

5 years agoAdd warning and convert to exception in string offset assignment:
George Peter Banyard [Tue, 7 Jan 2020 21:55:43 +0000 (22:55 +0100)]
Add warning and convert to exception in string offset assignment:

Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned to the offset if provided
a needle that is longer than one byte.

[1] https://wiki.php.net/rfc/engine_warnings

Closes GH-5063

5 years agoAllow empty needles in mb_strpos and mb_strstr function family.
George Peter Banyard [Sat, 7 Dec 2019 01:44:34 +0000 (02:44 +0100)]
Allow empty needles in mb_strpos and mb_strstr function family.

MBstring analogous implementation to 6d578482a933be7597b686b59a935b316161d251

Closes GH-4977

5 years agoAdd warning and convert to exception in string offset assignment:
George Peter Banyard [Tue, 7 Jan 2020 20:51:34 +0000 (21:51 +0100)]
Add warning and convert to exception in string offset assignment:

Convert the empty string assignment to an Error as per RFC [1]
Add a warning that only the first byte will be assigned to the offset if provided
a needle that is longer than one byte.

[1] https://wiki.php.net/rfc/engine_warnings

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 7 Jan 2020 14:29:51 +0000 (15:29 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Make test more resilient

5 years agoMake test more resilient
Christoph M. Becker [Tue, 7 Jan 2020 14:28:48 +0000 (15:28 +0100)]
Make test more resilient

Depending on the libcurl version and perhaps configuration, it may show
additional info (due to `CURLOPT_VERBOSE` being activated), which we
have to ignore, to avoid spurious test failures.

5 years agoRenumber zval types, clarify allowed overlap
Nikita Popov [Tue, 7 Jan 2020 13:53:25 +0000 (14:53 +0100)]
Renumber zval types, clarify allowed overlap

Make it clear that types used for type declarations can overlap
with the rest, and can also overlap in MAY_BE space.

This makes things more robust against the addition of new primitive
types.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 7 Jan 2020 13:27:34 +0000 (14:27 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Increase sleep() time in test case

5 years agoIncrease sleep() time in test case
Christoph M. Becker [Tue, 7 Jan 2020 13:24:55 +0000 (14:24 +0100)]
Increase sleep() time in test case

Apparently, the former increase to `sleep(2)` helped somewhat, but
still the test fails occassionally.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Tue, 7 Jan 2020 10:13:24 +0000 (11:13 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Bump version

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 7 Jan 2020 10:10:55 +0000 (11:10 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Bump version

5 years agoBump version
Christoph M. Becker [Tue, 7 Jan 2020 10:03:19 +0000 (11:03 +0100)]
Bump version

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 6 Jan 2020 21:42:31 +0000 (22:42 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Remove support for preloading on Windows

5 years agoRemove support for preloading on Windows
Nikita Popov [Tue, 10 Dec 2019 13:29:58 +0000 (14:29 +0100)]
Remove support for preloading on Windows

Due to ASLR restrictions, preloading on Windows does not work with
any code that has preloading dependencies on internal classes.
This effectively makes it unusable for any non-trivial codebase.

Instead of pretending like preloading is going to work, only to
make people realize that it really doesn't once they get beyond
a dummy example, we disable support for preloading on Windows
entirely.

Closes GH-4999.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 6 Jan 2020 17:47:44 +0000 (18:47 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Throw Error when referencing uninit typed prop in __sleep

5 years agoThrow Error when referencing uninit typed prop in __sleep
Nikita Popov [Fri, 3 Jan 2020 14:35:10 +0000 (15:35 +0100)]
Throw Error when referencing uninit typed prop in __sleep

Previously this generated a notice, but would likely generate an
Error when unserializing.

Now we treat it with the same distinction as direct property
accesses, i.e. referencing an unset/undefined normal property
stays a notice, while a typed property becomes an Error exception.

This fixed bug #79002.

Closes GH-5050.

5 years ago[ci skip] Merge branch 'PHP-7.4'
Christoph M. Becker [Mon, 6 Jan 2020 14:34:22 +0000 (15:34 +0100)]
[ci skip] Merge branch 'PHP-7.4'

Empty merge.

5 years ago[ci skip] Merge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 6 Jan 2020 14:32:40 +0000 (15:32 +0100)]
[ci skip] Merge branch 'PHP-7.3' into PHP-7.4

Empty merge.

5 years agoRevert "Extend CURLFile to support streams"
Christoph M. Becker [Mon, 6 Jan 2020 14:19:34 +0000 (15:19 +0100)]
Revert "Extend CURLFile to support streams"

This reverts commit 17a9f1401aeb35fe1e3657b38102a410d151d42f, because
this commit would break ABI, and also due to bug #79013.
We keep the commit for PHP 7.4+, though.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Mon, 6 Jan 2020 13:51:14 +0000 (14:51 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #54298: Using empty additional_headers adding extraneous CRLF

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 6 Jan 2020 13:48:22 +0000 (14:48 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #54298: Using empty additional_headers adding extraneous CRLF

5 years agoFix #54298: Using empty additional_headers adding extraneous CRLF
Christoph M. Becker [Sun, 5 Jan 2020 14:15:09 +0000 (15:15 +0100)]
Fix #54298: Using empty additional_headers adding extraneous CRLF

If the header string is empty, we pass `NULL` to `php_mail()` to avoid
further checks on the string length.

5 years agoRename skeleton stub file
Nikita Popov [Mon, 6 Jan 2020 13:43:05 +0000 (14:43 +0100)]
Rename skeleton stub file

Add the .php suffix

5 years agoFix hypothetical segfault in gdTransformAffineCopy()
Christoph M. Becker [Mon, 6 Jan 2020 12:24:07 +0000 (13:24 +0100)]
Fix hypothetical segfault in gdTransformAffineCopy()

This has been reported to upstream[1], but since ext/gd never calls
`gdTransformAffineCopy()` for a palette image, it is not a bug for PHP.
Therefore we apply the fix to master only.

[1] <https://github.com/libgd/libgd/issues/586>

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 6 Jan 2020 09:43:05 +0000 (10:43 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Don't link against openssl 1.1 in curl

5 years agoDon't link against openssl 1.1 in curl
Nikita Popov [Mon, 6 Jan 2020 09:40:43 +0000 (10:40 +0100)]
Don't link against openssl 1.1 in curl

OpenSSL 1.1 does not need crypto locking callbacks, so avoid
detecting and linking against it in the first place.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Mon, 6 Jan 2020 09:39:00 +0000 (10:39 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79068: gdTransformAffineCopy() changes interpolation method

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 6 Jan 2020 09:38:08 +0000 (10:38 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79068: gdTransformAffineCopy() changes interpolation method

5 years agoFix #79068: gdTransformAffineCopy() changes interpolation method
Christoph M. Becker [Mon, 6 Jan 2020 09:33:47 +0000 (10:33 +0100)]
Fix #79068: gdTransformAffineCopy() changes interpolation method

We port
<https://github.com/libgd/libgd/commit/9088591eae437358ee5b929adf82865e37e3001e>.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Mon, 6 Jan 2020 09:31:34 +0000 (10:31 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix bug #79063: Curl openssl does not respect PKG_CONFIG_PATH
  Clean up curl openssl check

5 years agoFix bug #79063: Curl openssl does not respect PKG_CONFIG_PATH
Nikita Popov [Mon, 6 Jan 2020 09:29:41 +0000 (10:29 +0100)]
Fix bug #79063: Curl openssl does not respect PKG_CONFIG_PATH

5 years agoClean up curl openssl check
Nikita Popov [Mon, 6 Jan 2020 09:16:42 +0000 (10:16 +0100)]
Clean up curl openssl check

Only set HAVE_CURL_OPENSSL flag, and remove Windows specific code,
as all of this is only relevant for OpenSSL < 1.1, which is not
used on Windows.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Mon, 6 Jan 2020 08:38:19 +0000 (09:38 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79067: gdTransformAffineCopy() may use unitialized values

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Mon, 6 Jan 2020 08:36:49 +0000 (09:36 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79067: gdTransformAffineCopy() may use unitialized values

5 years agoFix #79067: gdTransformAffineCopy() may use unitialized values
Christoph M. Becker [Mon, 6 Jan 2020 08:35:13 +0000 (09:35 +0100)]
Fix #79067: gdTransformAffineCopy() may use unitialized values

We port
<https://github.com/libgd/libgd/commit/7a06c1669c563917bc48c464521e3de962ddb4e8>.

5 years agoRemove useless else branch
Christoph M. Becker [Mon, 6 Jan 2020 07:53:50 +0000 (08:53 +0100)]
Remove useless else branch

Passing `NULL` as `gdTransformAffineGetImage()`'s `src_area` is fine,
but in this case there's no need to calculate the `rect`, and since
`pRect` has already been initialized to `NULL`, we can remove the whole
else branch.

5 years agoThrow exception for unconstructed intl objects
Máté Kocsis [Sat, 4 Jan 2020 10:01:59 +0000 (11:01 +0100)]
Throw exception for unconstructed intl objects

Closes GH-5052

5 years agoRemove duplicate test cases
Christoph M. Becker [Sun, 5 Jan 2020 19:08:39 +0000 (20:08 +0100)]
Remove duplicate test cases

These had originally used other exit codes as mail_basic5.phpt, but
that was changed later with commit d1b12c9[1].

[1] <http://git.php.net/?p=php-src.git;a=commit;h=d1b12c9a3031841302722d6f6706e4598a639d7a>

5 years agoFix slowest tests
Gabriel Caruso [Sat, 2 Nov 2019 15:29:42 +0000 (16:29 +0100)]
Fix slowest tests

5 years agoFix build if SQLITE_RECURSIVE is not supported
Matteo Beccati [Sat, 4 Jan 2020 09:27:43 +0000 (10:27 +0100)]
Fix build if SQLITE_RECURSIVE is not supported

5 years agoMerge branch 'identical-handler' into HEAD
Tyson Andre [Sat, 4 Jan 2020 00:04:20 +0000 (19:04 -0500)]
Merge branch 'identical-handler' into HEAD

5 years agoFix usage of RETURN_THROWS() in LDAP extension
Máté Kocsis [Fri, 3 Jan 2020 21:40:16 +0000 (22:40 +0100)]
Fix usage of RETURN_THROWS() in LDAP extension

5 years agoUse RETURN_THROWS() in various places
Máté Kocsis [Fri, 3 Jan 2020 19:44:29 +0000 (20:44 +0100)]
Use RETURN_THROWS() in various places

5 years agoUse RETURN_THROWS() after zend_fetch_resource*()
Máté Kocsis [Fri, 3 Jan 2020 18:16:51 +0000 (19:16 +0100)]
Use RETURN_THROWS() after zend_fetch_resource*()

5 years agoAdd stubs for various intl functions
Máté Kocsis [Sat, 12 Oct 2019 19:53:15 +0000 (21:53 +0200)]
Add stubs for various intl functions

Closes GH-4819
- Add stubs for idn functions
- Add stubs for grapheme functions
- Add stubs for Spoofchecker
- Add stubs for Normalizer
- Add stubs for ResourceBundle
- Fix arginfos
- Add support for union return types
- Fix arginfo for resourcebundle_create()

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 3 Jan 2020 17:51:25 +0000 (18:51 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 3 Jan 2020 17:49:36 +0000 (18:49 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached

5 years agoFix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached
Christoph M. Becker [Thu, 14 Nov 2019 10:21:41 +0000 (11:21 +0100)]
Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached

We implement support for a fifth parameter, which allows to specify the
mapsize.  The parameter defaults to zero, in which case the compiled in
default mapsize (usually 1048576) will be used.  The mapsize should be
a multiple of the page size of the OS.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 3 Jan 2020 17:13:44 +0000 (18:13 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #78538: shmop memory leak

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 3 Jan 2020 17:12:41 +0000 (18:12 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78538: shmop memory leak

5 years agoFix #78538: shmop memory leak
Christoph M. Becker [Mon, 25 Nov 2019 13:05:15 +0000 (14:05 +0100)]
Fix #78538: shmop memory leak

If the descriptor's refcount drops to zero, we have to unmap the
respective file view, to avoid leaking memory.

5 years agoUse RETURN_THROWS() after try_convert_to_string()
Máté Kocsis [Fri, 3 Jan 2020 16:04:06 +0000 (17:04 +0100)]
Use RETURN_THROWS() after try_convert_to_string()

5 years agoAdding DateTime(Immutable)::createFromInterface()
mike [Mon, 16 Dec 2019 13:31:14 +0000 (14:31 +0100)]
Adding DateTime(Immutable)::createFromInterface()

These are like

    DateTime::createFromImmutable()
    DateTimeImmutable::createFromMutable()

but accept any DateTimeInterface instead.

Closes GH-5016.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 3 Jan 2020 15:49:42 +0000 (16:49 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Slightly increase tolerance in time_sleep_until() test

5 years agoSlightly increase tolerance in time_sleep_until() test
Nikita Popov [Fri, 3 Jan 2020 15:48:06 +0000 (16:48 +0100)]
Slightly increase tolerance in time_sleep_until() test

With the 1ms tolerance this still occasionally fails on macos.
I love macos. It always works and causes no problems at all.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 3 Jan 2020 15:45:23 +0000 (16:45 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Try to fix intermittently failing test case

5 years agoTry to fix intermittently failing test case
Christoph M. Becker [Fri, 3 Jan 2020 15:44:53 +0000 (16:44 +0100)]
Try to fix intermittently failing test case

This test fails intermittently due to taskill reporting failure to kill
the process (because it already has been terminated).  We increase the
sleep time, to hopefully prevent that from happening again.

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Fri, 3 Jan 2020 13:32:56 +0000 (14:32 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix #79015: undefined-behavior in php_date.c

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Fri, 3 Jan 2020 13:32:04 +0000 (14:32 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #79015: undefined-behavior in php_date.c

5 years agoFix #79015: undefined-behavior in php_date.c
Christoph M. Becker [Mon, 23 Dec 2019 13:42:54 +0000 (14:42 +0100)]
Fix #79015: undefined-behavior in php_date.c

We check that the given microsecond fraction is in the valid range
[0, 1000000[, and otherwise mark it as invalid.  We also drop the
useless do loop; a plain block is sufficient here.

5 years agoDon't enable sanitizer by default for Windows snapshot builds
Christoph M. Becker [Fri, 27 Dec 2019 13:04:31 +0000 (14:04 +0100)]
Don't enable sanitizer by default for Windows snapshot builds

Snapshot builds are release builds, and therefore enabling sanitizers
is undesireable.

5 years agoConvert zend_parse_parameters_none() to fast ZPP
Máté Kocsis [Fri, 3 Jan 2020 11:11:45 +0000 (12:11 +0100)]
Convert zend_parse_parameters_none() to fast ZPP

I've done the conversion in those extensions where fast ZPP is predominant.

5 years agoUse zend_parse_parameters_none() instead of zend_parse_parameters_none_throw()
Máté Kocsis [Fri, 3 Jan 2020 12:22:16 +0000 (13:22 +0100)]
Use zend_parse_parameters_none() instead of zend_parse_parameters_none_throw()

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 3 Jan 2020 11:03:31 +0000 (12:03 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Remove unnecessary strncpy in zip

5 years agoRemove unnecessary strncpy in zip
Nikita Popov [Fri, 3 Jan 2020 10:51:46 +0000 (11:51 +0100)]
Remove unnecessary strncpy in zip

This causes a warning on GCC 9 and is unnecessary to boot: We
only use "cwd" for the open_basedir check, so we can just as well
pass in the original string.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 3 Jan 2020 10:27:27 +0000 (11:27 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Add test for bug #73816

5 years agoAdd test for bug #73816
Nikita Popov [Fri, 3 Jan 2020 10:26:31 +0000 (11:26 +0100)]
Add test for bug #73816

This has been fixed by 0f2cdbf214efd98b4bdaf5ca41728faf00e7c037,
add the test case.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 3 Jan 2020 10:16:25 +0000 (11:16 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fixed bug #71876

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 3 Jan 2020 10:16:14 +0000 (11:16 +0100)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fixed bug #71876

5 years agoFixed bug #71876
Nikita Popov [Fri, 3 Jan 2020 10:14:45 +0000 (11:14 +0100)]
Fixed bug #71876

This is a backport of fcdc0a6db0ae63fbed9e3828137b899b844623ce
to the PHP-7.3 branch. We need to make sure that OnUpdateString
is also called for a NULL value, otherwise the reset of the encoding
at the end of the request will not work.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Fri, 3 Jan 2020 10:09:06 +0000 (11:09 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fixed bug #79056

5 years agoFixed bug #79056
Nikita Popov [Fri, 3 Jan 2020 09:40:51 +0000 (10:40 +0100)]
Fixed bug #79056

5 years agoImplement WeakMap
Nikita Popov [Thu, 31 Oct 2019 11:13:18 +0000 (12:13 +0100)]
Implement WeakMap

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

5 years agoUse RETURN_THROWS() after zend_throw_exception() in reflection extension
Máté Kocsis [Fri, 3 Jan 2020 09:18:34 +0000 (10:18 +0100)]
Use RETURN_THROWS() after zend_throw_exception() in reflection extension

5 years agoUse RETURN_THROWS() after zend_parse_method_parameters()
Máté Kocsis [Thu, 2 Jan 2020 21:56:45 +0000 (22:56 +0100)]
Use RETURN_THROWS() after zend_parse_method_parameters()

5 years agoMerge branch 'PHP-7.4'
Christoph M. Becker [Thu, 2 Jan 2020 18:28:45 +0000 (19:28 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Add test case for bug #78883

5 years agoAdd test case for bug #78883
Christoph M. Becker [Thu, 2 Jan 2020 18:25:31 +0000 (19:25 +0100)]
Add test case for bug #78883

The original test has been provided by divinity76.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Thu, 2 Jan 2020 14:55:01 +0000 (15:55 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fixed bug #79055
  Extract functions for file cache type serialization

5 years agoFixed bug #79055
Nikita Popov [Thu, 2 Jan 2020 14:50:44 +0000 (15:50 +0100)]
Fixed bug #79055

Fix file cache serialization of property types. I'm changing the
overall type serialization format to perform additional adjustments
in order to yield a plausible pointer for zend_type, rather than
using an entirely separate serialization format, as was previously
done. That would have been annoying to extend to the case of CE
pointers.

5 years agoExtract functions for file cache type serialization
Nikita Popov [Thu, 2 Jan 2020 14:16:24 +0000 (15:16 +0100)]
Extract functions for file cache type serialization

This is already done in master.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Thu, 2 Jan 2020 14:01:56 +0000 (15:01 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Fix file cache run_time_cache unserialization
  Update ZCSG(map_ptr_last) only if for_shm

5 years agoFix file cache run_time_cache unserialization
Nikita Popov [Thu, 2 Jan 2020 13:56:39 +0000 (14:56 +0100)]
Fix file cache run_time_cache unserialization

If the script was serialized as file_cache_only (thus non-immutable)
and then gets unserialized into SHM, we need to allocate a new
run_time_cache slot and can't use the serialized arena pointer.

5 years agoUpdate ZCSG(map_ptr_last) only if for_shm
Nikita Popov [Thu, 2 Jan 2020 10:59:36 +0000 (11:59 +0100)]
Update ZCSG(map_ptr_last) only if for_shm

Otherwise we may get a memory protection fault here. Updating of
ZCSG(map_ptr_last) is handled when loading from file cache to SHM.

5 years agoMerge branch 'PHP-7.4'
Nikita Popov [Thu, 2 Jan 2020 10:14:16 +0000 (11:14 +0100)]
Merge branch 'PHP-7.4'

* PHP-7.4:
  Populate hashtable of __sleep() properties
  Deref names returned by __sleep()
  Extract php_var_serialize_nested_data() function

5 years agoPopulate hashtable of __sleep() properties
Nikita Popov [Thu, 2 Jan 2020 10:11:01 +0000 (11:11 +0100)]
Populate hashtable of __sleep() properties

Instead of populating a hashtable of property names and then
directly serializing.

This has the advantage of a) detecting duplicate properties more
precisely and b) gives us the ability to discard values without
rewriting the serialization string after the fact for GH-5027.

5 years agoDeref names returned by __sleep()
Nikita Popov [Thu, 2 Jan 2020 09:52:50 +0000 (10:52 +0100)]
Deref names returned by __sleep()

5 years agoExtract php_var_serialize_nested_data() function
Nikita Popov [Thu, 2 Jan 2020 09:43:01 +0000 (10:43 +0100)]
Extract php_var_serialize_nested_data() function

And split code-paths for arrays and objects based on it.