Dmitry Stogov
26449de4d8
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix incorrect code produced for BOOL_NOT and [double, undef] operand
2021-11-30 20:45:57 +03:00
Dmitry Stogov
07389566ac
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix incorrect code produced for BOOL_NOT and [double, undef] operand
2021-11-30 20:44:46 +03:00
Dmitry Stogov
e7b31f57ec
JIT: Fix incorrect code produced for BOOL_NOT and [double, undef] operand
...
Fixes oss-fuzz #41531
2021-11-30 20:36:52 +03:00
David CARLIER
283669f1ae
pcntl add forkx for solaris based systems. ( #7654 )
2021-11-30 15:47:14 +01:00
Tyson Andre
032de9e001
Optimize SplObjectStorage native read/write/has/unset dimension handlers
...
This makes reading/writing with `$splObjectStorage[$offset]` shorthand twice as
fast as it was previously, and a bit faster than offsetGet/offsetSet instead of
(previously) much slower.
Call destructor after overriding old SplObjectStorage entry.
Previously, it was called before, which was possibly unsafe
if the destructor had side effects.
Add tests.
Closes GH-7695
Related to GH-7690
Check for ref in SplObjectStorage->__unserialize, check for ref.
SplObjectStorage->unserialize may be a different cause of references
for malformed inputs, so continue checking
In internally used methods, convert references to non-references if they're
found.
2021-11-30 09:09:12 -05:00
Dmitry Stogov
c2aea6e805
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix incorrect reference counting inference
2021-11-30 13:00:13 +03:00
Dmitry Stogov
3564001502
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix incorrect reference counting inference
2021-11-30 13:00:04 +03:00
Dmitry Stogov
c1036194d6
JIT: Fix incorrect reference counting inference
...
Fixes oss-fuzz #40747
2021-11-30 12:58:54 +03:00
Dmitry Stogov
517738b19b
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix uninitialized result of ASSIGN_DIM[_OP] after clobbering array by user error handler
2021-11-30 11:42:58 +03:00
Dmitry Stogov
005d5f4df8
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix uninitialized result of ASSIGN_DIM[_OP] after clobbering array by user error handler
2021-11-30 11:41:55 +03:00
Dmitry Stogov
6e1fe96962
JIT: Fix uninitialized result of ASSIGN_DIM[_OP] after clobbering array by user error handler
...
Fixes oss-fuzz #41208
2021-11-30 11:40:18 +03:00
Dmitry Stogov
0d6232dc72
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Restore line, removed by mistake in b914122389
2021-11-30 09:45:15 +03:00
Dmitry Stogov
3c3626a903
Restore line, removed by mistake in b914122389
2021-11-30 09:44:36 +03:00
Dmitry Stogov
e1baef1835
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:40:49 +03:00
Dmitry Stogov
2d3ea98624
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:39:37 +03:00
Dmitry Stogov
86430e8e01
Fixed type inference (it's safe to ignore reference counting narrowing)
2021-11-29 23:32:52 +03:00
Dmitry Stogov
8cdead1568
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix exception handling when next array element is already occupied
2021-11-29 21:57:38 +03:00
Dmitry Stogov
23c5a6fd16
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix exception handling when next array element is already occupied
2021-11-29 21:57:29 +03:00
Dmitry Stogov
aff115547f
JIT: Fix exception handling when next array element is already occupied
...
Fixes oss-fuzz #41408
2021-11-29 21:44:00 +03:00
Christoph M. Becker
c0d890e918
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix #74604 : Out of bounds in php_pcre_replace_impl
2021-11-29 19:17:49 +01:00
Christoph M. Becker
60717fcd34
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix #74604 : Out of bounds in php_pcre_replace_impl
2021-11-29 19:17:16 +01:00
Christoph M. Becker
816aa20391
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #74604 : Out of bounds in php_pcre_replace_impl
2021-11-29 19:15:20 +01:00
Christoph M. Becker
712fc54e85
Fix #74604 : Out of bounds in php_pcre_replace_impl
...
Trying to allocate a `zend_string` with a length only slighty smaller
than `SIZE_MAX` causes an integer overflow; we make sure that this
doesn't happen by catering to the maximal overhead of a `zend_string`.
Closes GH-7597.
2021-11-29 19:12:55 +01:00
Dmitry Stogov
1b36555148
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix named arguments handling
JIT: Fix named arguments handling
2021-11-29 18:43:34 +03:00
Dmitry Stogov
b914122389
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix named arguments handling
JIT: Fix named arguments handling
2021-11-29 18:43:24 +03:00
Dmitry Stogov
d955415114
JIT: Fix named arguments handling
...
Fixes oss-fuzz #41486
2021-11-29 18:39:50 +03:00
Dmitry Stogov
8f4cfe04eb
JIT: Fix named arguments handling
...
Fixes oss-fuzz #41486
2021-11-29 18:37:49 +03:00
Christoph M. Becker
e73cccd9f2
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix #81659 : stream_get_contents() may unnecessarily overallocate
2021-11-29 14:50:54 +01:00
Christoph M. Becker
b0823438a9
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix #81659 : stream_get_contents() may unnecessarily overallocate
2021-11-29 14:50:19 +01:00
Christoph M. Becker
f3bd24a200
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #81659 : stream_get_contents() may unnecessarily overallocate
2021-11-29 14:48:11 +01:00
Christoph M. Becker
31749aac62
Fix #81659 : stream_get_contents() may unnecessarily overallocate
...
Since we're going to read from the current stream position anyway, the
`max_len` should be the size of the file minus the current position
(still catering to potentially filtered streams). We must, however,
make sure to cater to the file position being beyond the actual file
size.
While we're at, we also fix the step size in the comment, which is 8K.
A further optimization could be done for unfiltered streams, thus
saving that step size, but 8K might not be worth it.
Closes GH-7693.
2021-11-29 14:46:09 +01:00
Dmitry Stogov
ee38e3ac37
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Disable type narrowing optimization when we contruct SSA for JIT
2021-11-29 15:54:53 +03:00
Dmitry Stogov
c6e895aec2
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Disable type narrowing optimization when we contruct SSA for JIT
2021-11-29 15:53:16 +03:00
Dmitry Stogov
297117bbc5
Disable type narrowing optimization when we contruct SSA for JIT
...
This also revets incorrect fix introduced in f9518c3850
2021-11-29 15:51:54 +03:00
Tyson Andre
fbdded1ff1
Use interned string for calling count() in Zend VM
...
Similar to f0dd79a7e4
Copied from GH-7695
2021-11-28 14:09:54 -05:00
Nikita Popov
c5d6f59e96
Use custom object instead of resource for soap server service
...
The "service" resource is a purely internal structure used by
SoapServer, which userland code cannot interact with. Instead of
storing it as a resource in an object propperty, use a custom
object structure instead.
2021-11-28 18:37:29 +01:00
Tyson Andre
7504cf189b
Improve performance of WeakReference/WeakMap. Avoid hash collisions on pointers. ( #7690 )
...
Shift pointers by ZEND_MM_ALIGNMENT_LOG2
to avoid the noticeable performance degradation caused by hash table collisions.
in `EG(weakrefs)` and zend_weakmap->ht
On 64-bit platforms, pointers are usually aligned to at least 8 bytes,
so only one in 8 hash buckets were actually getting used.
(With the metadata needed to track allocations,
alignment might be at least 16 bytes in practice)
Address review comments, add optimization
Make it public for any extensions that need to work with EG(weakrefs)
for instrumentation, debugging, etc. (e.g. zend_test)
PHP 8.1 and previous releases would use the raw pointer value as a hash key instead.
2021-11-27 19:52:30 -05:00
Alex Dowad
ee3caef8eb
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Add unit tests for mb_detect_encoding on Polish text
2021-11-26 17:43:40 +02:00
Alex Dowad
1a2c608053
Add unit tests for mb_detect_encoding on Polish text
2021-11-26 17:42:53 +02:00
Nikita Popov
902d64390e
Deprecate implicit dynamic properties
...
Writing to a proprety that hasn't been declared is deprecated,
unless the class uses the #[AllowDynamicProperties] attribute or
defines __get()/__set().
RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
2021-11-26 14:10:11 +01:00
Gregor Harlan
35a01f86e0
Add dark mode for phpinfo() ( #7626 )
...
The light mode remains the same.
2021-11-26 11:51:42 +01:00
Nikita Popov
8be10fb48d
Remove redundant test
...
This test is the same as 001.phpt, apart from some formatting
differences.
2021-11-26 11:24:22 +01:00
Dmitry Stogov
8b86af4969
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed test (added 8.1 deprecation)
2021-11-25 22:40:49 +03:00
Dmitry Stogov
442304485e
Fixed test (added 8.1 deprecation)
2021-11-25 22:40:26 +03:00
Dmitry Stogov
81007bd86a
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed use-after-free caused by shift by negative number
2021-11-25 22:24:29 +03:00
Dmitry Stogov
971354caac
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed use-after-free caused by shift by negative number
2021-11-25 22:24:15 +03:00
Dmitry Stogov
49f44e7ffc
JIT: Fixed use-after-free caused by shift by negative number
...
Fixes oss-fuzz #41192
2021-11-25 22:21:44 +03:00
Christoph M. Becker
1f183792c1
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Update to PCRE2 10.39
2021-11-25 18:38:49 +01:00
Christoph M. Becker
6008a75f39
Update to PCRE2 10.39
...
We also apply an respective upstream fix[1].
[1] <d144199dfb >
Closes GH-7678.
2021-11-25 18:38:31 +01:00
Christoph M. Becker
80f18665e4
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix #81649 : imap_(un)delete accept sequences, not single numbers
2021-11-25 18:31:29 +01:00