Skip to content

[pull] master from php:master #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1,140 commits into from
Oct 4, 2021
Merged

[pull] master from php:master #12

merged 1,140 commits into from
Oct 4, 2021

Conversation

pull[bot]
Copy link

@pull pull bot commented Aug 3, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@trafico-bot trafico-bot bot added the 🔍 Ready for Review Pull Request is not reviewed yet label Aug 3, 2021
@pull pull bot added ⤵️ pull and removed 🔍 Ready for Review Pull Request is not reviewed yet labels Aug 3, 2021
@trafico-bot trafico-bot bot added the 🔍 Ready for Review Pull Request is not reviewed yet label Aug 3, 2021
@todo
Copy link

todo bot commented Aug 6, 2021

We silently ignore priv_key if pub_key is not given, unlike in the DH case.

php-src/ext/openssl/openssl.c

Lines 3883 to 3888 in 2bf316f

// TODO: We silently ignore priv_key if pub_key is not given, unlike in the DH case.
if (pub_key) {
OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_PUB_KEY, pub_key);
if (priv_key) {
OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_PRIV_KEY, priv_key);
}


This comment was generated by todo based on a TODO comment in 2bf316f in #12. cc @php.

nikic and others added 25 commits September 23, 2021 16:44
While the cwd-relative lookup worked for the oss-fuzz docker images,
it doesn't seem to work on the cluster infrastructure. Try finding
opcache.so relative to the binary instead.
Headers should not be processed in a locale-depdendent fashion.
Switch from upper to lowercasing because that's the standard for
PHP and we provide an ASCII implementation of this operation.

This is adapted from GH-7506.
* PHP-8.1:
  Use locale-independent case conversion in mb_send_mail()
* PHP-8.0:
  Tracing JIT: Fixed possible incorrect megamorphic call from a trait
* PHP-8.1:
  Tracing JIT: Fixed possible incorrect megamorphic call from a trait
* PHP-7.4:
  Fix gdAlphaMax limit typo
* PHP-8.0:
  Fix gdAlphaMax limit typo
* PHP-8.1:
  Fix gdAlphaMax limit typo
* PHP-8.1:
  Fixed typo
Use ASCII case conversion instead of locale-dependent case conversion in
the following places:

* grapheme_stripos() and grapheme_strripos() in the "fast" path
* ldap_get_entries()
* oci_pconnect() for case folding of parameters when constructing a key
  into the connection or session pool
* SoapClient: case folding of function names
* get_meta_tags(): case conversion of property names
* http stream wrapper: header names
* phpinfo(): anchor names
* php_verror(): docref URLs
* rfc1867.c: Content-Type boundary parameter name
* streams.c: stream protocol names

Using locale-dependent case folding for these cases is either
unnecessary or actively incorrect. These functions could have
misbehaved when used with certain locales (e.g. Turkish).

Closes GH-7511.
* PHP-8.1:
  Use ASCII lower case for misc case folding
These are thin wrappers ... around the wrong functions. They call
the "_l()" version of the underlying APIs. For clarify, just call
the wrapped API directly.
Otherwise we're sending the signal to the shell, not the sleep
process, and it will continue sleeping.

This also illustrates a minor issue without our array proc_open()
support: We don't preserve the passed arguments in the
proc_get_status() output.
* PHP-8.1:
  Avoid shell for proc_terminate() test
Latest linux kernel use large number (12 bits for major device, 20
bits for minor device). Current code only supports previous standard
(5 chars), which means 8 bits for major and 8 bits for minor device.
It will fail if device number is out of that range. So this patch
increases device number read from /proc/self/maps file.

Closes GH-7512.
* PHP-8.0:
  Fix bug #81472: Support large device major/minor number
* PHP-8.1:
  Fix bug #81472: Support large device major/minor number
Which makes it equivalent to just zend_user_iterator, so drop the
wrapper entirely.
We don't make use of any functionality of zend_user_iterator,
a plain zend_object_iterator will do.
This flag only has an effect (or use) for Iterators, not for
IteratorAggregates. Removing the confusing flag.
bukka and others added 27 commits October 2, 2021 18:31
* PHP-7.4:
  [ci skip] Add missing NEWS
* PHP-8.0:
  [ci skip] Add missing NEWS
* PHP-8.0:
  [ci skip] Fix missing NEWS
This reverts commit 08f52b1.

The newly added test fails.
* PHP-7.4:
  Revert "Add FPM prod idle timeout test"
* PHP-8.0:
  Revert "Add FPM prod idle timeout test"
  [ci skip] Fix missing NEWS
  [ci skip] Add missing NEWS
* PHP-8.1:
  Revert "Add FPM prod idle timeout test"
When making the relative path, we must not stop on a `:\` sequence in
the middle of the filename.  This is only significant on Windows as it
may indicate an absolute filename, but this is already checked at the
beginning of the function.

Note that the bug and this patch affects all systems.  However, on
Windows the file is no longer extracted at all, since Windows NTSF does
not allow filenames containing colons.

Closes GH-7528.
* PHP-7.4:
  Fix #77978: Dirname ending in colon unzips to wrong dir
* PHP-8.0:
  Fix #77978: Dirname ending in colon unzips to wrong dir
* PHP-8.1:
  Fix #77978: Dirname ending in colon unzips to wrong dir
* PHP-8.0:
  Fix bug #81474: Make ReflectionAttribute non-final
* PHP-8.1:
  Fix bug #81474: Make ReflectionAttribute non-final
* PHP-8.1:
  JIT: Use zend_compare() instead of comapre_function()
It's possible for CE_CACHE slots to be populated during compilation
(e.g. due to an early binding attempt). When opcache then persists
the class, it clears the CE_CACHE slot for the class name as declared,
but not for different spellings (that only differ in case). As such,
a pointer to the old, non-persistent class entry may be retained.

Fix this by not populating CE_CACHE if in_compilation is set.

Closes GH-7542.
* PHP-8.1:
  Don't populate CE_CACHE during compilation
* PHP-8.1:
  JIT: Avoid duplicate EX(opline) assignment
In the attached test case we ended up not updating a leftover
MATCH jump in the unreachable_free block. There's different ways
this can be addressed, but in this case we can just make sure that
a new block is started after the loop free, which will allow it
to be dropped as unreachable. We only need to retain the free
itself for live-range reconstruction.

Fixes oss-fuzz #39516.
* PHP-8.1:
  Start new block after loop free
@pull pull bot merged commit d1aff29 into ConnectionMaster:master Oct 4, 2021
@trafico-bot trafico-bot bot added ✨ Merged Pull Request has been merged successfully and removed 🔍 Ready for Review Pull Request is not reviewed yet labels Oct 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⤵️ pull ✨ Merged Pull Request has been merged successfully
Projects
None yet
Development

Successfully merging this pull request may close these issues.