| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
(cherry picked from commit 9d6bf8221b05f86ce5875832f0f646c4c1f218be)
|
|
|
|
| |
(cherry picked from commit 14fcc813948254b84f382ff537247d8a7e5e0e62)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The comment on `PS_VALIDATE_SID_FUNC(files)` is very clear that the
function is supposed to return `SUCCESS` if the session already exists.
So to detect a collision, we have to check for `SUCCESS`, not
`FAILURE`.
We also fix the wrong condition in session_regenerate_id() as well.
|
|
|
|
|
|
| |
If `shm.shm_segsz > ZEND_LONG_MAX` the assignment to `shmop->size` a
few lines below would overflow, so we catch that early and bail out if
necessary.
|
|
|
|
|
| |
This breaks on Linux with the musl libc, since it zeroes out gl_pathc during
globfree.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The skip message must start with the word 'skip', otherwise the test will not be skipped.
*Before:*
Running selected tests.
TEST 1/1 [ext/com_dotnet/tests/bug79332.phpt]
========DIFF========
001+ Fatal error: Uncaught Error: Class 'COMPersistHelper' not found in /srv/php/ext/com_dotnet/tests/bug79332.php:2
001- A com_exception has been thrown
002+ Stack trace:
003+ #0 {main}
004+ thrown in /srv/php/ext/com_dotnet/tests/bug79332.php on line 2
========DONE========
FAIL Bug #79332 (php_istreams are never freed) [ext/com_dotnet/tests/bug79332.phpt]
*After:*
Running selected tests.
SKIP Bug #79332 (php_istreams are never freed) [ext/com_dotnet/tests/bug79332.phpt] reason: com_dotnet extension not available
|
| |
|
|
|
|
|
|
| |
without newline)
Closes GH-5292.
|
|
|
|
| |
Forgot the git add again...
|
|
|
|
|
| |
This can happen if there is an EXIT in the call arguments, in which
case the DO_CALL opcode may be eliminated as unreachable.
|
|
|
|
|
| |
Windows filenames may very well contain a colon, so we adjust the test
accordingly.
|
|
|
|
|
|
|
|
|
|
|
| |
To cater to potentially state-dependent encodings, we have to reset the
conversion descriptor into its initial shift state to properly finish
the conversion. Furthermore, state-dependent encodings may not show
progress when comparing `in_left` before and after the conversion; we
rather have to see whether `out_left` has decreased. Also we have to
cater to the fact that the final potentially state resetting call does
not signal failure, but we still have to break respective loops
afterwards.
|
|
|
|
|
|
|
| |
We favor the KISS principle over optimization[1] – SPL is already
special enough.
[1] <https://github.com/php/php-src/pull/2489/commits/352f3d4476a79bb86136b431719df7394e5a8d4e#r112498098>ff
|
| |
|
| |
|
|
|
|
|
| |
When you attempt to set the time to a non-existent time occuring during
a DST jump forward, the hour does not move forward correctly.
|
| |
|
|\
| |
| |
| |
| | |
* PHP-7.2:
bump verison to 7.2.30-dev
|
| | |
|
|\ \
| |/
| |
| |
| | |
* PHP-7.2:
Fix NEWS
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
* PHP-7.2:
[ci skip] Update NEWS
Fix test
Fix bug #79329 - get_headers should not accept \0
Fixed bug #79282
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
We make sure that negative values are properly compared.
|
| | |
|
| |
| |
| |
| |
| | |
`curl_copy_handle()` already registers a new resource, so we must not
increase the refcount of the original resource.
|
| |
| |
| |
| |
| | |
We must not treat a node as string if it has attributes, unless it is
an entity declaration which is always treated as string by simplexml.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is actually about three distinct issues:
* If an empty string is passed as $address to `stream_socket_sendto()`,
the `sa` is not initialized, so we must not pass it as `addr` to
`php_stream_xport_sendto()`.
* On POSIX, `recvfrom()` truncates messages which are too long to fit
into the specified buffer (unless `MSG_PEEK` is given), discards the
excessive bytes, and returns the buffer length. On Windows, the same
happens, but `recvfrom()` returns `SOCKET_ERROR` with the error code
`WSAEMSGSIZE`. We have to catch this for best POSIX compatibility.
* In `php_network_parse_network_address_with_port()`, we have to zero
`in6` (not only its alias `sa`) to properly support IPv6.
Co-Authored-By: Nikita Popov <nikita.ppv@googlemail.com>
|
| |
| |
| |
| |
| | |
We must not forget to keep the `nNextFreeElement` when duplicating
empty arrays.
|
| |
| |
| |
| |
| | |
At least on Windows, the temporary directory may contain tilde signs,
which would result in an INI parse error.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Even though `SplStack::unserialize()` is not supposed to be called on
an already constructed instance, it is probably better if the method
clears the stack before actually unserializing.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some commits missed to update the patch file, so we're catching up on
this.
To generally make this easier, we back-port generate_patch.sh from
PHP-7.4, where we now also generate magic.h from magic.h.in.
|
| |
| |
| |
| |
| |
| |
| |
| | |
We have to free the `ansiname`s, regardless of whether they have been
put into the hashtable or not.
Since bug79299.phpt already shows the leak when run with a leak
checker, there is no need for another regression test.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Releasing the `com_dotnet_istream_wrapper` in `istream_destructor()` is
pointless, since `istream_destructor()` is only called when the
resource is going to be released. This recursion is not a real issue,
though, since the resource is never exposed to userland, and has at
most refcount 1, so due to well defined unsigned integer underflow, it
never is released twice. However, returning early in this case causes
a memory leak which needs to be fixed.
|
| |
| |
| |
| | |
Back up the doc comment when performing heredoc scanahead.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For obvious reasons, we must not assign a `size_t` value to an `int`
variable using memcpy(). However, there is actually no need for the
intermediate `n_sugg_st` here, if we use the proper types in the first
place.
A regression test is not necessary, because dict_suggest.phpt already
exhibits the erroneous behavior on big endian architectures.
|
| | |
|
| | |
|