| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | | |
Fixes oss-fuzz #31423.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Because of the memcpy, compilers can't infer that ZSTR_LEN (i.e. class_name->len)
did not change, so they copy it out of memory into a register for the last two
accesses.
php_var_serialize_string already does something similar.
Closes GH-6734
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Fixed bug #80805
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
Fixed bug #80805
|
| | |
| | |
| | |
| | |
| | |
| | | |
Handle missing result_var in binary_op_result_type.
(cherry picked from commit 8446e2827585c37d0739f8d44fa8d359cbbb6551)
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | | |
comparison, etc. Now properties are ordered according to their layout in zend_object structure.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
etc.
Now properties are ordered according to their layout in zend_object structure.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, dynamically declared functions and closures are inserted
into the function table under a runtime definition key, and then later
possibly renamed. When opcache is not used and a file containing a
closure is repeatedly included, this leads to a very large memory leak,
as the no longer needed closure declarations will never be freed
(https://bugs.php.net/bug.php?id=76982).
With this patch, dynamic functions are instead stored in a
dynamic_func_defs member on the op_array, which opcodes reference
by index. When the parent op_array is destroyed, the dynamic_func_defs
it contains are also destroyed (unless they are stilled used elsewhere,
e.g. because they have been bound, or are used by a live closure). This
resolves the fundamental part of the leak, though doesn't completely
fix it yet due to some arena allocations.
The main non-obvious change here is to static variable handling:
We can't destroy static_variables_ptr in destroy_op_array, as e.g.
that would clear the static variables in a dynamic function when
the op_array containing it is destroyed. Static variable destruction
is separated out for this reason (we already do static variable
destruction separately for normal functions, so we only need to
handle main scripts).
Closes GH-5595.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
explode(): Passing null to parameter #2 ($string) of type string is
deprecated
Closes GH-6698.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Valgrind 3.3.0 was released in 2007, not even RHEL has crap older than
this. It could be argued that 3.8.0, released in 2012, could be a safe
cutoff too.
Closes GH-6728.
|
| | |
| | |
| | |
| | |
| | | |
Make it clearer that the specified type is really the only type
that can be returned.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Closes GH-6737
Signed-off-by: George Peter Banyard <girgias@php.net>
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Fix Bug #80800 imap_open() fails when the flags parameter includes CL_EXPUNGE
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This also affected imap_reopen().
Add a supplementary test that the CL_EXPUNGE flag does have
the intended effect.
Closes GH-6732
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ / |
|
| |\ \
| | |/ |
|
| | |
| | |
| | |
| | | |
calling __construct after instantiation
|
| | |
| | |
| | |
| | |
| | |
| | | |
This is barely used and more of a hinderence than anything else
Closes GH-6712
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
skip test with openssl < 1.1.0
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
skip test with openssl < 1.1.0
|
| | |
| | |
| | |
| | |
| | | |
The test fails, but without any crash
(this test is designed to catch a crash)
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Capture Microsoft-defined HRESULT exit codes exit codes
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
Capture Microsoft-defined HRESULT exit codes exit codes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The lack of such a check leads to false-passes of tests on Windows
which expect no output, but produce a segfault or similar issue. I
discovered this a while ago due to bad tests in an extension I maintain.
Closes GH-6722.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
crc32 module, clang spurious warning removal.
|
| | |
| | |
| | |
| | | |
Closes GH-6725.
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
mysqlnd pam fix test error message
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
mysqlnd pam fix test error message
|
| | |
| | |
| | |
| | | |
Closes GH-6727.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
* PHP-8.0:
Fix potential file collision in dom tests
Fix bug #80757 (Exit code is 0 when could not open file)
Update NEWS
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
Fix potential file collision in dom tests
|
| | | |
|
| |\ \
| | |/ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
We already use <= for IS_SERIALIZED(), but the same general
problem can also occur for IS_UNSERIALIZED(). We don't seem to
hit this in practice prior to GH-5595 though.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Fixed bug #80782 (DASM_S_RANGE_VREG on PHP_INT_MIN-1)
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't mind me, I just happened to be browsing this code. 🙃
Closes GH-6721.
[ci skip]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently every --SKIPIF-- section in every test file results in 1
extra execution of PHP, every --EXTENSIONS-- section - in 2 executions.
This is quite wasteful, as skip checking code is extremely repetitive
and extensions are fixed for every binary/ini/command parameters
combination.
This patch adds caching to all such checks.
On my machine, the gains are quite noticeable: 36s instead of 43s
with -j16, 292s instead of 337s without concurrency. Cache stats are
3780 hits, 1247 misses in the latter case. In the future, tests could
be adjusted to have more uniform skip checks to improve performance even
more.
Closes GH-6681.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
run-tests: fixed exit code not being set on BORKED tests
|