| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
By simply dropping the additional checks, in line with the general
guideline of trusting the output of config scripts (this should
be migrated to pkg-config though).
Also drop the code for manually adding -z if mysql_config does not
-- that's not our problem.
|
| |
|
| |
|
|
|
|
|
| |
The default value is part of the op_array in that case, but we have
no way to access it. Fail gracefully.
|
| |
|
| |
|
|\
| |
| |
| |
| | |
* PHP-7.4:
Handle errors during next_result()
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Not keeping a reference will not result in use after free, because
curl protects against it, but it will result in a memory leak,
because curl_share_cleanup() will fail. We should make sure that
the share handle object stays alive as long as the curl handles
use it.
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix phi use chain management when renaming variable
|
| |
| |
| |
| |
| |
| |
| | |
If there is a previous use of the new variable in the phi, we need
to NULL out the use chain of the new source we're adding.
Test case is reduced from an assertion failure in the Symfony Demo.
|
| |
| |
| |
| | |
And drop the U_DEFINE_TRUE_AND_FALSE flag.
|
| |
| |
| |
| |
| |
| |
| | |
All other leftovers of this feature have been dropped in PHP 8,
so we should remove the property as well.
Closes GH-6407.
|
| | |
|
| |
| |
| |
| |
| | |
Just like the other preload tests with startup failures, this may
cause leaks.
|
| |
| |
| |
| |
| | |
See https://externals.io/message/112189.
Fixes bug #80328.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Split tests for compatibility with ICU 68.1
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This cherry-picks 33969c2252b2c33a72c9039072af8862fd347a5f and
2effbfd8713936742ef46e6e85ce193b320ac005 from PHP-8.0.
The issues these commits fix could also manifest in PHP 7.4, and
a commenter on bug #80307 reports this this might indeed be
happening.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If Zip operations fails due to PHP error conditions before libzip even
has been called, there is no meaningful indication what failed; the
functions just return false, and the Zip status indicated that no error
did occur. Therefore we raise `E_WARNING` in these cases.
Closes GH-6356.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Trait methods might be non-trivially inherited, in which case we
may have to perform fixup in classes that do not directly use any
traits.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a trait method is inherited, preloading trait fixup might be
performed on it multiple times. Usually this is fine, because
the opcodes pointer will have already been updated, and will thus
not be found in the xlat table.
However, it can happen that the new opcodes pointer is the same
as one of the old opcodes pointers, if the pointer has been reused
by the allocator. In this case we will look up the wrong op array
and overwrite the trait method with an unrelated trait method.
We fix this by indexing the xlat table not by the opcodes pointer,
but by the refcount pointer. The refcount pointer is not changed
during optimization, and accurately represents which op arrays
should use the same opcodes.
Fixes bug #80307. The test case does not reproduce the bug, because
this depends on a lot of "luck" with the allocator. The test case
merely illustrates a case where orig_op_array would have been NULL
in the original code.
|
| |
| |
| |
| |
| |
| | |
Same as in php_request_shutdown(), we need to end any active
output handlers, as these may no longer be safe to execute
lateron.
|
| |
| |
| |
| | |
At least this can happen during preloading.
|
| |
| |
| |
| |
| | |
This is now "bug compatible" with the normal behavior, and more
imporantly, does not crash :)
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix #80266: parse_url silently drops port number 0
|
| |\
| | |
| | |
| | |
| | | |
* PHP-7.3:
Fix #80266: parse_url silently drops port number 0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As of commit 81b2f3e[1], `parse_url()` accepts URLs with a zero port,
but does not report that port, what is wrong in hindsight.
Since the port number is stored as `unsigned short` there is no way to
distinguish between port zero and no port. For BC reasons, we thus
introduce `parse_url_ex2()` which accepts an output parameter that
allows that distinction, and use the new function to fix the behavior.
The introduction of `parse_url_ex2()` has been suggested by Nikita.
[1] <http://git.php.net/?p=php-src.git;a=commit;h=81b2f3e5d9fcdffd87a4fcd12bd8c708a97091e1>
Closes GH-6399.
|
| | |
| | |
| | |
| | |
| | |
| | | |
There should not be any need to persist references, and it's unlikely
that persisting a reference will behave correctly at runtime, because
we don't have a concept of an immutable reference.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix dynamic function definition in preload script
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We should use normal function renaming if the function is declared
during preloading itself, rather than afterwards.
This fixes a regression introduced by
68f80be9d1380de731930187250a7ed6b55ae196.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We should only disable early binding during the opcache_compile_file()
calls, not inside the preloading script or anything it includes.
The right condition to check for is whether we compile the file
without execution, as declaring classes is "execution".
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
We shouldn't call the copy constructor inside the original type,
duh.
|
| | |
| | |
| | |
| | |
| | | |
As preloading runs in in_compilation mode, we also need to allow
use of unlinked classes in lookup_class().
|
| | |
| | |
| | |
| | |
| | |
| | | |
This is a bit annoying: When preloading is used, types might be
resolved during inheritance checks, so we need to deal with CE
types rather than just NAME types everywhere.
|
| | |
| | |
| | |
| | |
| | |
| | | |
When preloading, it's fine to make use of internal class information,
as we do not support Windows. It is also necessary to allow proper
variance checks against internal classes.
|
| | |
| | |
| | |
| | |
| | | |
If the property info comes from an internal parent, we won't have
an xlat entry for it. Leave it alone in that case.
|
| | | |
|
| | | |
|