| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | |
| | |
| | |
| | | |
Closes GH-5759
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
While performing resource -> object migrations, we're adding
defensive classes that are final, non-serializable and non-clonable
(unless they are, of course). This path adds a ZEND_ACC_NO_DYNAMIC_PROPERTIES
flag, that also forbids the creation of dynamic properties on these objects.
This is a subset of #3931 and targeted at internal usage only
(though may be extended to userland at some point in the future).
It's already possible to achieve this (what the removed
WeakRef/WeakMap code does), but there's some caveats: First, this
simple approach is only possible if the class has no declared
properties, otherwise it's necessary to special-case those
properties. Second, it's easy to make it overly strict, e.g. by
forbidding isset($obj->prop) as well. And finally, it requires a
lot of boilerplate code for each class.
Closes GH-5572.
|
| | |
| | |
| | |
| | |
| | | |
These tests leak with the curl version on ubuntu 20.04. This should
be fixed when we switch exit to use an exception.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The hash is used to check whether the arginfo file needs to be
regenerated. PHP-Parser will only be downloaded if this is actually
necessary.
This ensures that release artifacts will never try to regenerate
stubs and thus fetch PHP-Parser, as long as you do not modify any
files.
Closes GH-5739.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(int) $curlHandle will return spl_object_id($curlHandle). This
makes curl handle objects backwards compatible with code using
(int) $curlHandle to obtain a resource ID.
Closes GH-5743.
|
| | |
| | |
| | |
| | | |
Closes GH-5734
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Closes GH-5402
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
| | | |
|
| | |
| | |
| | |
| | | |
Closes GH-5375
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal functions.
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
| | |
| | |
| | |
| | | |
Closes GH-5347
|
| | |
| | |
| | |
| | | |
Closes GH-5322
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix #79199: curl_copy_handle() memory leak
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.3:
Fix #79199: curl_copy_handle() memory leak
|
| | |
| | |
| | |
| | |
| | | |
`curl_copy_handle()` already registers a new resource, so we must not
increase the refcount of the original resource.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix #79013: Content-Length missing when posting a curlFile with curl
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Unfortunately, some Webservers (e.g. IIS) do not implement the (F)CGI
specifications correctly wrt. chunked uploads (i.e. Transfer-encoding:
chunked), but instead pass -1 as CONTENT_LENGTH to the CGI
application. However, our (F)CFI SAPIs (i.e. cgi and cgi-fcgi) do not
support this.
Therefore we try to retrieve the stream size in advance and pass it to
`curl_mime_data_cb()` to prevent libcurl from doing chunked uploads.
This is basically the same approach that `curl_mime_filedata()`
implements, except that we are keeping already opened streams open for
the `read_cb()`.
|
| | |
| | |
| | |
| | | |
Closes GH-5211
|
| | |
| | |
| | |
| | | |
Closes GH-5092
|
| | |
| | |
| | |
| | |
| | |
| | | |
of 7.10.8
Closes GH-5166.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix #79019: Copied cURL handles upload empty file
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To cater to `curl_copy_handle()` of cURL handles with attached
`CURLFile`s, we must not attach the opened stream, because the stream
may not be seekable, so that we could rewind, when the same stream is
going to be uploaded multiple times. Instead, we're opening the stream
lazily in the read callback.
Since `curl_multi_perfom()` processes easy handles asynchronously, we
have no control of the operation sequence. Since duplicated cURL
handles may be used with multi handles, we cannot use a single arg
structure, but actually have to rebuild the whole mime structure on
handle duplication and attach this to the new handle.
In order to better test this behavior, we extend the test responder to
print the size of the upload, and patch the existing tests accordingly.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix #78090: bug45161.phpt takes forever to finish
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.3:
Fix #78090: bug45161.phpt takes forever to finish
|
| | |
| | |
| | |
| | |
| | |
| | | |
Not all systems support the discard protocol (TCP port 9), and since
there is no particular reason to use it, we switch to using actual
server testing.
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Add CURLOPT CURLOPT_HTTP09_ALLOWED available since 7.64.0
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.3:
Add CURLOPT CURLOPT_HTTP09_ALLOWED available since 7.64.0
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
libcurl 7.29.0 has been released almost eight years ago, so this
version is supposed to be available practically everywhere. This bump
also allows us to get rid of quite some conditional code and tests
catering to very old libcurl versions.
|
| | |
| | |
| | |
| | | |
Closes GH-5066 As a first step, let's capitalize their initial letter when it is applicable.
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix #79078: Hypothetical use-after-free in curl_multi_add_handle()
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.3:
Fix #79078: Hypothetical use-after-free in curl_multi_add_handle()
|
| | |
| | |
| | |
| | |
| | | |
To avoid this, we have to verify the handlers already in
`curl_multi_add_handle()`, not only in `curl_multi_exec()`.
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 17a9f1401aeb35fe1e3657b38102a410d151d42f, because
this commit would break ABI, and also due to bug #79013.
We keep the commit for PHP 7.4+, though.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Extract function
|
| | |
| | |
| | |
| | |
| | |
| | | |
As suggested by Nikita[1].
[1] <https://github.com/php/php-src/pull/5045#discussion_r364265013>
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Make test more resilient
|
| | |
| | |
| | |
| | |
| | |
| | | |
Depending on the libcurl version and perhaps configuration, it may show
additional info (due to `CURLOPT_VERBOSE` being activated), which we
have to ignore, to avoid spurious test failures.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Don't link against openssl 1.1 in curl
|
| | |
| | |
| | |
| | |
| | | |
OpenSSL 1.1 does not need crypto locking callbacks, so avoid
detecting and linking against it in the first place.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | | |
* PHP-7.4:
Fix bug #79063: Curl openssl does not respect PKG_CONFIG_PATH
Clean up curl openssl check
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Only set HAVE_CURL_OPENSSL flag, and remove Windows specific code,
as all of this is only relevant for OpenSSL < 1.1, which is not
used on Windows.
|
| | | |
|