]>
granicus.if.org Git - php/log
Nikita Popov [Fri, 5 Jun 2020 14:55:20 +0000 (16:55 +0200)]
Fix bug #77966: Cannot alias a method named "namespace"
This is a bit tricky: In this cases we have "namespace as", which
means that we will only recognize "namespace" as an identifier when
the lookahead token is already at the "as". This means that
zend_lex_tstring picks up the wrong identifier.
We solve this by actually assigning the identifier as the semantic
value on the parser stack -- as in almost all cases we will not
actually need the identifier, this is just an (offset, size)
reference, not a copy of the string.
Additionally, we need to teach the lexer feedback mechanism used
by tokenizer TOKEN_PARSE mode to apply feedback to something
other than the very last token. To that purpose we pass through
the token text and check the tokens in reverse order to find the
right one.
Closes GH-5668.
Phil Davis [Mon, 8 Jun 2020 08:29:29 +0000 (14:14 +0545)]
Fix typo of IteratorAggregateImpl
Closes GH-5682.
Nikita Popov [Mon, 8 Jun 2020 09:32:24 +0000 (11:32 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fixed bug #79657
Nikita Popov [Mon, 8 Jun 2020 09:31:28 +0000 (11:31 +0200)]
Fixed bug #79657
Throwing an exception should count as an initialization for this
purpose.
Dmitry Stogov [Mon, 8 Jun 2020 09:18:05 +0000 (12:18 +0300)]
Fixed incorrect zend_bool type usage
twosee [Sun, 7 Jun 2020 09:01:19 +0000 (17:01 +0800)]
Constify char * arguments of APIs
Closes GH-5676.
Nikita Popov [Mon, 8 Jun 2020 08:36:01 +0000 (10:36 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Disable mysqlnd compression on msan build
Nikita Popov [Mon, 8 Jun 2020 08:35:05 +0000 (10:35 +0200)]
Disable mysqlnd compression on msan build
This recently got enabled when detection was fixed. However,
we don't want this for msan builds, because our zlib is not
instrumented.
Nikita Popov [Mon, 8 Jun 2020 08:13:25 +0000 (10:13 +0200)]
Fix leak in openssl_cms_read()
Remi Collet [Mon, 8 Jun 2020 06:02:48 +0000 (08:02 +0200)]
[skip ci] typo
Jens de Nies [Sun, 17 May 2020 21:48:01 +0000 (23:48 +0200)]
Deprecate function aliases in oci8 extension.
Closes GH-5589
Jakub Zelenka [Sun, 7 Jun 2020 20:11:09 +0000 (21:11 +0100)]
Update NEWS and UPGRADING for the OpenSSL ext CMS addition
Eliot Lear [Mon, 9 Mar 2020 15:01:20 +0000 (16:01 +0100)]
Add support for Cryptographic Message Syntax (CMS)
It add CMS (RFC 5652) support, which is an update to PKCS7. The functions
are analogous BUT NOT IDENTICAL to openssl_pkcs7*. In particular, support for
different encodings (PEM, DER, SMIME) is now available.
Gabriel Caruso [Sat, 30 May 2020 22:17:31 +0000 (00:17 +0200)]
Add $filter parameter for ReflectionClass::(getConstants|getReflectionConstants)
This solves [#79628](https://bugs.php.net/79628).
Similar to `ReflectionClass::getMethods()` and `ReflectionClass::getProperties()`,
this new `$filter` argument allows the filtering of constants defined in a class by
their visibility.
For that, we create three new constants for `ReflectionClassConstant`:
* `IS_PUBLIC`
* `IS_PROTECTED`
* `IS_PRIVATE`
Closes GH-5649.
Gabriel Caruso [Sat, 30 May 2020 21:21:39 +0000 (23:21 +0200)]
Fix tests' description for `ReflectionClass::getConstant`
twosee [Sun, 7 Jun 2020 00:38:13 +0000 (08:38 +0800)]
Fix expression warnings and break warnings
Close GH-5675.
Nikita Popov [Sun, 7 Jun 2020 08:38:50 +0000 (10:38 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Allow defining of uname value for reproducible builds
Jelle van der Waa [Fri, 5 Jun 2020 20:50:58 +0000 (22:50 +0200)]
Allow defining of uname value for reproducible builds
Extend configure.ac to accept PHP_UNAME as env variable to set the value of the
PHP_UNAME define in a reproducible manner. This allows distributions to set a
fixed value for php_uname and keep the default behaviour if PHP_UNAME is not
set.
Motivation: https://reproducible-builds.org/
Closes GH-5671.
twosee [Sat, 6 Jun 2020 10:12:05 +0000 (18:12 +0800)]
Remove duplicate zend_try
Closes GH-5672.
twosee [Sat, 6 Jun 2020 12:13:38 +0000 (20:13 +0800)]
Fix warning of strict-prototypes
Closes GH-5673.
Nikita Popov [Sun, 7 Jun 2020 08:24:03 +0000 (10:24 +0200)]
Fix free of uninitialized memory in attributes
Fixes OSS-Fuzz #23140.
Remi Collet [Sun, 7 Jun 2020 06:16:50 +0000 (08:16 +0200)]
move comment
Remi Collet [Sun, 7 Jun 2020 05:53:14 +0000 (07:53 +0200)]
Fixed bug #79678 Build fails due to undeclared ZIP_RDONLY
George Peter Banyard [Sat, 6 Jun 2020 13:02:17 +0000 (15:02 +0200)]
Fix invalid usage of zend_bool in DOM extension
twosee [Sat, 6 Jun 2020 06:47:39 +0000 (14:47 +0800)]
Fix BC break of zend_throw_exception
This also fixes a SegFault
Closes GH-5670
Máté Kocsis [Fri, 5 Jun 2020 12:40:40 +0000 (14:40 +0200)]
Add tests to check mismatching function signatures
Closes GH-5666
Nicolas Frandeboeuf [Fri, 5 Jun 2020 10:23:36 +0000 (12:23 +0200)]
openssl: Fix openssl_pkcs12_export_to_file extracerts test
Same as https://github.com/php/php-src/pull/2681/files but for openssl_pkcs12_export_to_file
Closes GH-5665
George Peter Banyard [Fri, 5 Jun 2020 17:01:13 +0000 (19:01 +0200)]
Refactor IntlBreakIterator::next() handling
George Peter Banyard [Fri, 5 Jun 2020 16:00:56 +0000 (18:00 +0200)]
Convert code path which should never happen to assertion
Remi Collet [Fri, 5 Jun 2020 15:08:21 +0000 (17:08 +0200)]
encode param is optional
Nikita Popov [Fri, 5 Jun 2020 14:27:09 +0000 (16:27 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Remove unnecessary "poo" rmdirs
Nikita Popov [Fri, 5 Jun 2020 14:26:09 +0000 (16:26 +0200)]
Remove unnecessary "poo" rmdirs
"poo" was only used in the opendir_edgecases test, but rmdir'ed
in some other tests as well.
I've also taken the liberty of renaming this directory...
Remi Collet [Fri, 5 Jun 2020 14:23:43 +0000 (16:23 +0200)]
bump zip version
Nikita Popov [Tue, 24 Mar 2020 12:18:28 +0000 (13:18 +0100)]
Implement "Constructor Promotion" RFC
RFC: https://wiki.php.net/rfc/constructor_promotion
Closes GH-5291.
Dmitry Stogov [Fri, 5 Jun 2020 11:20:39 +0000 (14:20 +0300)]
micro-optimization
Christoph M. Becker [Wed, 27 May 2020 10:01:16 +0000 (12:01 +0200)]
Drop hard-coded /W3 default in favor of custom CFLAGS
Building with `/W3` shows an awful lot of warnings on Windows, so it's
really hard to spot the more important ones. Since it is not possible
to override the hard-coded `/W3`, we drop it altogether, so MSVC uses
the default `/W1`. Users are encouraged to increase the warning level
via the environment variable `CFLAGS` before doing configure.
We also enable `/WX` (treat warnings as errors) for AppVeyor CI, using
`/W1` for now, since otherwise the build would fail.
Christoph M. Becker [Wed, 27 May 2020 07:58:10 +0000 (09:58 +0200)]
Fix MSVC level 1 (severe) warnings
We fix (hopefully) all instances of:
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4005>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4024>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4028>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4047>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4087>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4090>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4273>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4312>
`zend_llist_add_element()` and `zend_llist_prepend_element()` now
explicitly expect a *const* pointer.
We use the macro `ZEND_VOIDP()` instead of a `(void*)` cast to suppress
C4090; this should prevent accidential removal of the cast by
clarifying the intention, and makes it easier to remove the casts if
the issue[1] will be resolved sometime.
[1] <https://developercommunity.visualstudio.com/content/problem/390711/c-compiler-incorrect-propagation-of-const-qualifie.html>
Nikita Popov [Fri, 5 Jun 2020 08:52:07 +0000 (10:52 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Update intl test suite for ICU 67.1
Christoph M. Becker [Fri, 24 Apr 2020 08:43:42 +0000 (10:43 +0200)]
Update intl test suite for ICU 67.1
Cherry-picked from
c915c601710e2a44e6c7f89fcb12b8047c968108 .
Nikita Popov [Fri, 5 Jun 2020 08:36:35 +0000 (10:36 +0200)]
Free attribute validators on shutdown
Nikita Popov [Fri, 5 Jun 2020 08:29:49 +0000 (10:29 +0200)]
Don't leak attributes on internal classes
Also add zend_hash_release() API to complement zend_array_release(),
because the latter is specific to non-persistent zval arrays.
Nikita Popov [Fri, 5 Jun 2020 08:10:52 +0000 (10:10 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Respect --program-prefix/suffix when installing phar
Nathan Porter [Sat, 30 May 2020 22:39:11 +0000 (15:39 -0700)]
Respect --program-prefix/suffix when installing phar
Currently ./configure --enable-phar --program-suffix=7.4 will
result in binaries named php7.4 and phar but should instead
result in php7.4 and phar7.4
Closes GH-5650.
Nikita Popov [Fri, 29 May 2020 08:33:22 +0000 (10:33 +0200)]
Pass zend_string message to zend_error_cb
This makes the zend_error_cb API simpler, and avoid formatting
the same message in multiple places.
It should be noted that the passed zend_string is always
non-persistent, so if you want to store it persistently somewhere,
you may still need to duplicate it.
The last_error_message is cleared a bit more aggressive, to make
sure it doesn't hang around across allocator life-cycles.
Closes GH-5639.
Nikita Popov [Fri, 29 May 2020 15:27:51 +0000 (17:27 +0200)]
Fixed bug #72089: Throw Error on require failure
It should be noted that we still throw the usual fopen warnings,
but the final fatal error becomes an Error exception. Combine
with @ to suppress FS warnings.
Closes GH-5641.
Christoph M. Becker [Thu, 4 Jun 2020 15:15:59 +0000 (17:15 +0200)]
Fix phpdbg watchpoints wrt. negative_array_index RFC
The implementation of that RFC changed the initial value of
`zend_array.nNextFreeElement` to `-1`; we work around that by inserting
first, and retrieving the index afterwards.
We also fix the erroneous printf specifier for the unsigned integer.
Dmitry Stogov [Thu, 4 Jun 2020 21:05:12 +0000 (00:05 +0300)]
Avoid useless "mov"
George Peter Banyard [Tue, 2 Jun 2020 23:13:04 +0000 (01:13 +0200)]
Fix weird zend_bool usage in Intl Calendar::roll() method
This code really needs to be review as it's convoluted for no good reason.
Matthias Dötsch [Thu, 4 Jun 2020 16:58:41 +0000 (18:58 +0200)]
in_array() avoid internal property access as we have the arrlen already
Closes GH-5662
Benjamin Eberlei [Thu, 4 Jun 2020 16:21:18 +0000 (18:21 +0200)]
Add upgrading note for Attributes RFC
[ci-skip]
Benjamin Eberlei [Sun, 24 May 2020 18:57:00 +0000 (20:57 +0200)]
Add Attributes
Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com>
Christoph M. Becker [Thu, 4 Jun 2020 11:40:16 +0000 (13:40 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #73527: Invalid memory access in php_filter_strip
Christoph M. Becker [Thu, 4 Jun 2020 11:38:14 +0000 (13:38 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #73527: Invalid memory access in php_filter_strip
Christoph M. Becker [Thu, 4 Jun 2020 09:49:59 +0000 (11:49 +0200)]
Fix #73527: Invalid memory access in php_filter_strip
Dmitry Stogov [Thu, 4 Jun 2020 11:04:21 +0000 (14:04 +0300)]
Add guard for FETCH_DIM_FUNC_ARG
Dmitry Stogov [Thu, 4 Jun 2020 10:19:42 +0000 (13:19 +0300)]
Prefer shorter x86 instructions
Christoph M. Becker [Wed, 3 Jun 2020 23:03:14 +0000 (01:03 +0200)]
Implement #47074: phpinfo() reports "On" as 1 for the some extensions
What is modified as boolean, should also be displayed as boolean.
Dmitry Stogov [Thu, 4 Jun 2020 09:23:27 +0000 (12:23 +0300)]
Improved tracing JIT for FETCH_OBJ_R/IS
Nikita Popov [Thu, 4 Jun 2020 08:03:39 +0000 (10:03 +0200)]
Remove MYSQLND_COMPRESSION_WANTED define
Instead directly define MYSQLND_COMPRESSION_ENABLED. This also
matches what config.w32 does.
Nikita Popov [Thu, 4 Jun 2020 08:02:12 +0000 (10:02 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
mysqlnd: Remove unnecessary check for HAVE_ZLIB
talyz [Wed, 3 Jun 2020 19:21:18 +0000 (21:21 +0200)]
mysqlnd: Remove unnecessary check for HAVE_ZLIB
If MYSQLND_COMPRESSION_WANTED is set, we already guarantee that
zlib is linked, but don't necessarily set HAVE_ZLIB.
Closes GH-5658.
Christoph M. Becker [Thu, 4 Jun 2020 07:11:13 +0000 (09:11 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #79668: get_defined_functions(true) may miss functions
Dmitry Stogov [Thu, 4 Jun 2020 07:03:15 +0000 (10:03 +0300)]
Tracing JIT for FETCH_DIM_FUNC_ARG and FETCH_OBJ_FUNC_ARG when they are used in READ mode (to pass by value).
Christoph M. Becker [Thu, 4 Jun 2020 06:47:25 +0000 (08:47 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79668: get_defined_functions(true) may miss functions
Christoph M. Becker [Wed, 3 Jun 2020 10:05:00 +0000 (12:05 +0200)]
Fix #79668: get_defined_functions(true) may miss functions
Instead of some brittle and unefficient string matching, we can just
check for the function handler.
Dmitry Stogov [Wed, 3 Jun 2020 21:17:13 +0000 (00:17 +0300)]
Fixed abstract stack consistency for JMPZ_EX/JMPNZ_EX
Dmitry Stogov [Wed, 3 Jun 2020 19:50:40 +0000 (22:50 +0300)]
"call_info" doesn't matter
Dmitry Stogov [Wed, 3 Jun 2020 15:14:51 +0000 (18:14 +0300)]
Avoid useless register reload
Nikita Popov [Wed, 3 Jun 2020 12:50:35 +0000 (14:50 +0200)]
Fix typo in skipif section
Merge mistake...
Dmitry Stogov [Wed, 3 Jun 2020 09:11:39 +0000 (12:11 +0300)]
Avoid useless REFCOUNTED check
Christoph M. Becker [Tue, 2 Jun 2020 12:58:26 +0000 (14:58 +0200)]
Fix #79665: ini_get() and opcache_get_configuration() inconsistency
Overriding the given INI values in modifier callbacks is not possible,
so instead of enforcing "normalized" internal values, we just reject
the attempted changes.
Dmitry Stogov [Wed, 3 Jun 2020 08:51:04 +0000 (11:51 +0300)]
Use cheaper zend_rethrow_exception() instead of zend_throw_exception_internal()
Nikita Popov [Wed, 3 Jun 2020 08:17:27 +0000 (10:17 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Report len as -1 instead of INT_MAX
Nikita Popov [Wed, 3 Jun 2020 08:15:54 +0000 (10:15 +0200)]
Report len as -1 instead of INT_MAX
Per docs it should be -1. And would be on 32-bit systems, but
not on 64-bit systems.
Nikita Popov [Wed, 3 Jun 2020 08:02:31 +0000 (10:02 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Skip new watch point test under asan
Nikita Popov [Wed, 3 Jun 2020 08:01:57 +0000 (10:01 +0200)]
Skip new watch point test under asan
Dmitry Stogov [Wed, 3 Jun 2020 07:58:17 +0000 (10:58 +0300)]
Handle VM interrupts after DO_ICALL through side exits
Nikita Popov [Wed, 3 Jun 2020 07:57:01 +0000 (09:57 +0200)]
%d out token IDs in test
Avoid having to update this test any time token numbers shift.
Dmitry Stogov [Tue, 2 Jun 2020 21:49:10 +0000 (00:49 +0300)]
Avoid reference counting when RETURN CV
Dmitry Stogov [Tue, 2 Jun 2020 20:50:32 +0000 (23:50 +0300)]
Added missed helper
Christoph M. Becker [Tue, 2 Jun 2020 15:12:34 +0000 (17:12 +0200)]
Skip new test case on Windows when JIT is enabled
Cf. <http://git.php.net/?p=php-src.git;a=commit;h=
c5cf0af8a98cbc574fd315bf9d78033b896886f3 >.
Christoph M. Becker [Tue, 2 Jun 2020 13:19:32 +0000 (15:19 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #73927: phpdbg fails with windows error prompt at "watch array"
Christoph M. Becker [Wed, 27 May 2020 16:26:32 +0000 (18:26 +0200)]
Fix #73927: phpdbg fails with windows error prompt at "watch array"
We expect zvals, so we should request zvals.
We also suppress spurious watchpoint removal notices.
Dmitry Stogov [Tue, 2 Jun 2020 12:55:18 +0000 (15:55 +0300)]
Tracing JIT support for indirect CV modification (may be incomplete)
Dmitry Stogov [Tue, 2 Jun 2020 12:54:44 +0000 (15:54 +0300)]
Afdded misse MAY_BE_ARRAY_* flags
Christoph M. Becker [Tue, 2 Jun 2020 08:48:15 +0000 (10:48 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
Christoph M. Becker [Tue, 2 Jun 2020 08:46:35 +0000 (10:46 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
Christoph M. Becker [Tue, 2 Jun 2020 07:36:39 +0000 (09:36 +0200)]
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
As its name suggests, `sqlite3_data_count` returns the number of
columns in the current row of the result set; we are interested in the
number of columns regardless of the current row, so we have to use
`sqlite3_column_count` instead.
Nikita Popov [Tue, 2 Jun 2020 08:15:50 +0000 (10:15 +0200)]
Add some mixed types
Dmitry Stogov [Mon, 1 Jun 2020 13:26:22 +0000 (16:26 +0300)]
Fixed retutn type inference when return undefined variable
Christoph M. Becker [Mon, 1 Jun 2020 11:25:58 +0000 (13:25 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #79650: php-win.exe 100% cpu lockup
Christoph M. Becker [Mon, 1 Jun 2020 11:23:59 +0000 (13:23 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79650: php-win.exe 100% cpu lockup
Christoph M. Becker [Sun, 31 May 2020 11:28:09 +0000 (13:28 +0200)]
Fix #79650: php-win.exe 100% cpu lockup
As of PHP 7.3.0, `sapi_cli_single_write()` is supposed to return `< 0`
on failure, but `fwrite()` returns a `size_t`, and signals error by
setting the stream's error indicator. We have to cater to that.
Dmitry Stogov [Fri, 29 May 2020 10:58:04 +0000 (13:58 +0300)]
Fixed tracing JIT for closure run_time_cache access
Ilija Tovilo [Sat, 30 May 2020 21:33:25 +0000 (23:33 +0200)]
Fix php_get_args function info return type and add arg check
Closes GH-5648.
Nikita Popov [Sun, 31 May 2020 15:05:42 +0000 (17:05 +0200)]
Add UPGRADING note for pty support
[ci skip]
Nikita Popov [Sun, 31 May 2020 14:57:37 +0000 (16:57 +0200)]
Add UPGRADING note for xmlrpc unbundling
And drop other UPGRADING references to xmlrpc. I don't think it
makes sense to have those for extensions that are no longer
shipped...
[ci skip]
Nikita Popov [Sun, 31 May 2020 14:55:46 +0000 (16:55 +0200)]
Fix some line overruns in UPGRADING
[ci skip]
Nikita Popov [Sun, 31 May 2020 14:48:14 +0000 (16:48 +0200)]
Move upgrading note for mixed
This should be in the "new features" section.
[ci skip]
Daniel Ruf [Sun, 31 May 2020 12:18:19 +0000 (14:18 +0200)]
Fix small typo in comment