| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Fix signed integer overflow
|
| | |
| | |
| | |
| | | |
Fixes oss-fuzz #26763.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Fixed run-time binding of preloaded dynamically declared function
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
Fixed run-time binding of preloaded dynamically declared function
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This broke one old test (Zend/tests/multibyte_encoding_003.phpt), which used
a PHP script encoded as UTF-16. The problem was that to terminate the test
script, we need the text: "\n--EXPECT--". Out of that text, the terminating
newline (0x0A byte) becomes part of the resulting test script; but a bare
0x0A byte with no 0x00 is not valid UTF-16.
Since we now treat truncated UTF-16 characters as erroneous, an extra '?' is
appended to the output as an 'illegal character' marker.
Really, if we are running PHP scripts which are treated as encoded in UTF-16
or some other arbitrary text encoding (not ASCII), and the script is not
actually a valid string in that encoding, inserting '?' characters into the
code which the PHP interpreter runs is a bad thing to do. In such cases, the
script shouldn't be treated as UTF-16 (or whatever) at all.
I wonder if mbstring's encoding detection is being used in 'non-strict' mode?
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-8.0:
Declare may_retry_reparse_point on windows only
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.4:
Declare may_retry_reparse_point on windows only
|
| | |\
| | | |
| | | |
| | | |
| | | | |
* PHP-7.3:
Declare may_retry_reparse_point on windows only
|
| | | | |
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Fix #80258: Windows Deduplication Enabled, randon permission errors
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | | |
* PHP-7.4:
Fix #80258: Windows Deduplication Enabled, randon permission errors
|
| | |\ \
| | | |/
| | | |
| | | |
| | | | |
* PHP-7.3:
Fix #80258: Windows Deduplication Enabled, randon permission errors
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A recent bug fix regarding symlinks claimed:
> After resolving reparse points, the path still may be a reparse
> point; in that case we have to resolve that reparse point as well.
While that is basically correct, some reparse points may point to
inaccessible system folders (e.g. `IO_REPARSE_TAG_DEDUP` points to
"\System Volume Information"). Since we don't know details about
arbitrary reparse points, and are mainly interested in nested symlinks,
we take a step back, and only resolve `IO_REPARSE_TAG_SYMLINK` for now.
Close GH-6354.
|
| | | | |
|
|\ \ \ \
| |/ / / |
|
| | | |
| | | |
| | | |
| | | | |
Closes GH-6376
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Make GC default threshold handling consistent
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
While the initial threshold is set to 10001 roots, the threshold
adjustment logic may then set it to 10000. The exact value really
doesn't matter, but we should make it consistent.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Don't allow passing unknown named params to class without ctor
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
See also https://externals.io/message/112083.
Closes GH-6364.
|
|\ \ \ \
| |/ / / |
|
| | | |
| | | |
| | | |
| | | | |
Closes GH-6370
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Simplify and fix generator tree management
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This makes a number of related changes to the generator tree
management, that should hopefully make it easier to understand,
more robust and faster for the common linear-chain case. Fixes
https://bugs.php.net/bug.php?id=80240, which was the original
motivation here.
* Generators now only add a ref to their direct parent.
* Nodes only store their children, not their leafs, which avoids
any need for leaf updating. This means it's no longer possible
to fetch the child for a certain leaf, which is something we
only needed in one place (update_current). If multi-children
nodes are involved, this will require doing a walk in the other
direction (from leaf to root). It does not affect the common
case of single-child nodes.
* The root/leaf pointers are now seen as a pair. One leaf generator
can point to the current root. If a different leaf generator is
used, we'll move the root pointer over to that one. Again, this
is a cache to make the common linear chain case fast, trees may
need to scan up the parent link.
Closes GH-6344.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Fixed bug #80255
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This was a copy&paste mistake, target_block was used where
follow_block was intended. Also update copy&paste mistakes in
the comments.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Make sure output start filename is not freed early
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As filenames are no longer interned, we need to keep a reference
to the zend_string to make sure it isn't freed.
To avoid a nominal source compatibility break, create a new member
in the globals.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Fix leak when setting dynamic property on generator
|
| | | | |
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Fix bug #80055
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We need to perform trait scope fixup for both methods involved
in the inheritance check. For that purpose we already need to
thread through a separate fn scope through the entire inheritance
checking machinery.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Skip arginfo test under msan
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Msan is missing interceptors for some functions that result in
false positives.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
More arginfo/zpp verification
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Run all functions with a varying number of null arguments, which
helps us flush out all kinds of bugs.
Closes GH-5881.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This would have prevented 9b4094c.
Closes GH-6334.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Fix handling of throwing undef var in verify return
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If we have an undefined variable and null is not accepted by the
return type, we want to throw just the undef var error.
In this case this lead to an infinite loop, because we overwrite
the exception opline in SAVE_OPLINE and it does not get reset
when chaining into a previous exception. Add an assertiong to
catch this case earlier.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Fixed bug #80225
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Namespaced and declares have a different interpretation of what
"first statement" means.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | | |
* PHP-8.0:
Detect self-addition of array more accurately
Deindirect source elements in zend_hash_merge
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | | |
* PHP-7.4:
Detect self-addition of array more accurately
Deindirect source elements in zend_hash_merge
|
| | |\ \
| | | |/
| | | |
| | | |
| | | |
| | | | |
* PHP-7.3:
Detect self-addition of array more accurately
Deindirect source elements in zend_hash_merge
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
While the zvals may be different, they may still point to the
same array.
Fixes oss-fuzz #26245.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the RHS has INDIRECT elements, we do not those to be added to
the LHS verbatim. As we're using UPDATE_INDIRECT, we might even
create a nested INDIRECT that way.
This is a side-quest of oss-fuzz #26245.
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | | |
* PHP-8.0:
Avoid non-object in FE_FREE
|