summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix #77423: parse_url() will deliver a wrong host to userphp-7.3.26PHP-7.3.26Stanislav Malyshev2021-01-048-15/+63
| | | | (cherry picked from commit 128fca40376140c60b47a1c3750bb6435866838e)
* Prepare for 7.3.26Christoph M. Becker2021-01-044-5/+5
|
* Prepare 7.3.26RC1php-7.3.26RC1Christoph M. Becker2020-12-154-5/+5
|
* Fix mysqli_expire_password test for mariadbDaniel Black2020-12-031-13/+25
| | | | | | | | | | | | | | | In MariaDB-10.4.3 EXPIRE passwords where supported for MariaDB. This only behaves like MySQL when the system variable disconnect_on_expired_passwords=1. MariaDB if there was no password it could not be considered expired. So the test is adjusted to use actual passwords. (MariaDB commit a94b20a8e0d9e64eeaabdaaa7a3e03fcdb8a686e) The error codes produced my MariaDB are different however still conforming to the SQL specification. Closes GH-6480.
* Fixed bug #80457Nikita Popov2020-12-022-1/+4
| | | | | | | On x32 sizeof(size_t) != sizeof(zend_long), so we need to be careful with sign extension here. Patch by bruno dot premont at restena dot lu.
* Fix test for bug62890 to not depend on system cert storeJakub Zelenka2020-11-271-1/+2
|
* Fix mysqli_get_client_stats testDaniel Black2020-11-271-20/+8
| | | | | | | | | | | | MySQL removed RENAME DATABASE in 18300001c1dbbfddf9a0adcbaeea68956102bdd0 (Sept 2007, 5.1.23). As this briefest existance is very insignificant lets remove it. It also breaks when testing against MariaDB. As the alternate path in this test covers all supported MySQL and MariaDB versions and a signifant portion of unsupported versions lets keep it simple. Closes GH-6459.
* 7.3.26 is nextChristoph M. Becker2020-11-104-6/+9
|
* Fixed bug #80310: Support for icu4c 68.1.Alexander M. Turek2020-11-092-0/+6
| | | | | | | On stable versions, bring back the TRUE/FALSE defines by defining _U_DEFINE_TRUE_AND_FALSE. Closes GH-6397.
* Fix #80266: parse_url silently drops port number 0Christoph M. Becker2020-11-046-8/+26
| | | | | | | | | | | | | | | | 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.
* Fix another implicit function declaration in configureNikita Popov2020-11-031-5/+1
| | | | | As mentioned on bug #80171. This one is in libtool.m4, might get lost on libtool updates.
* Fix #70461: disable md5 code when it is not supported in net-snmpChristoph M. Becker2020-11-022-1/+8
| | | | | | Patch contributed by Alexander Bergmann. Closes GH-6389.
* Fix format specifierChristoph M. Becker2020-10-291-1/+1
| | | | In this function, `i` is of type `size_t`.
* Fix #44618: Fetching may rely on uninitialized dataChristoph M. Becker2020-10-293-4/+87
| | | | | | | | | Unless `SQLGetData()` returns `SQL_SUCCESS` or `SQL_SUCCESS_WITH_INFO`, the `StrLen_or_IndPtr` output argument is not guaranteed to be properly set. Thus we handle retrieval failure other than `SQL_ERROR` by yielding `false` for those column values and raising a warning. Closes GH-6281.
* Deny cloning of fileinfo objectsNikita Popov2020-10-262-0/+28
| | | | Using a cloned finfo object will crash.
* Revert "Fix out-of-bounds write"Christoph M. Becker2020-10-261-1/+1
| | | | | | | | | | This reverts commit bf6873a18e3b6b00f82a645c0893a281ae8eadb8. CVE-2020-26159 is bogus; the "bug" was apparently a false positive reported by Coverity, and the "fix" apparently wrong, see <https://github.com/kkos/oniguruma/issues/221>. Closes GH-6357.
* Fix #80268: loadHTML() truncates at NUL bytesChristoph M. Becker2020-10-263-1/+27
| | | | | | | | | | | | libxml2 has no particular issues parsing HTML strings with NUL bytes; these just cause truncation of the current text content, but parsing continues generally. Since `::loadHTMLFile()` already supports NUL bytes, `::loadHTML()` should as well. Note that this is different from XML, which does not allow any NUL bytes. Closes GH-6368.
* Declare may_retry_reparse_point on windows onlyNikita Popov2020-10-261-1/+2
|
* Fix #62474: com_event_sink crashes on certain argumentsChristoph M. Becker2020-10-263-20/+41
| | | | | | | We have to make sure that the variant is of type `VT_DISPATCH` before we access it as such. Closes GH-6372.
* Fix #80258: Windows Deduplication Enabled, randon permission errorsChristoph M. Becker2020-10-262-2/+6
| | | | | | | | | | | | | | | 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.
* Fix #80280: ADD_EXTENSION_DEP() fails for ext/standard and ext/dateChristoph M. Becker2020-10-263-1/+7
| | | | | | | | `ADD_EXTENSION_DEP()` relies on the `PHP_<extname>` config variables to be set to `"yes"`, and since the standard and date extension are always enabled, we define the respective variables uncoditionally. Closes GH-6383.
* Fix bug 76618George Peter Banyard2020-10-222-1/+2
| | | | Apply patch which was attached to the bug in July 2018
* Don't crash on uninitialized tidy objectNikita Popov2020-10-222-3/+39
| | | | | | "Uninitialized" here means that the object was created ordinarily -- no constructor skipping involved. Most tidy methods seem to handle this fine, but these three need to be guarded.
* Updated to version 2020.4 (2020d)Derick Rethans2020-10-221-399/+400
|
* Fix #80242: imap_mail_compose() segfaults for multipart with rfc822Christoph M. Becker2020-10-203-9/+37
| | | | | | | | | libc-client expects `TYPEMESSAGE` with an explicit subtype of `RFC822` to have a `nested.msg` (otherwise there will be a segfault during free), but not to have any `contents.text.data` (this will leak otherwise). Closes GH-6345.
* Add char* cast to avoid compiler warningsChristoph M. Becker2020-10-201-1/+1
| | | | | | | | In libc-client 2007f `data` is declared as `unsigned char *`; there may be variants which declare it as `void *`, but in any case picky compilers may warn about a pointer type mismatch in the conditional (and error with `-W-error`), so we're adding a `char *` cast for good measure.
* Properly fix #80220Christoph M. Becker2020-10-203-9/+48
| | | | | | | | | | | | | | | | | | | The original fix for that bug[1] broke the formerly working composition of message/rfc822 messages, which results in a segfault when freeing the message body now. While `imap_mail_compose()` does not really support composition of meaningful message/rfc822 messages (although libc-client appears to support that), some code may still use this to compose partial messages, and using string manipulation to create the final message. The point is that libc-client expects `TYPEMESSAGE` with an explicit subtype of `RFC822` to have a `nested.msg` (otherwise there will be a segfault during free), but not to have any `contents.text.data` (this will leak otherwise). [1] <http://git.php.net/?p=php-src.git;a=commit;h=0d022ddf03c5fabaaa22e486d1e4a367ed9170a7> Closes GH-6343.
* Updated to version 2020.3 (2020c)Derick Rethans2020-10-191-3/+3
|
* Fix broken fix for #80239Christoph M. Becker2020-10-151-2/+2
| | | | No idea why that `git am` failed that badly.
* Fix #80239: imap_rfc822_write_address() leaks memoryChristoph M. Becker2020-10-153-0/+14
| | | | We have to free the address when we're finished with it.
* Fix leak in gmp_export()Nikita Popov2020-10-152-2/+6
|
* Fix #64076: imap_sort() does not return FALSE on failureChristoph M. Becker2020-10-133-0/+28
| | | | | | | | | | | | If unsupported `$search_criteria` are passed to `imap_sort()`, the function returns an empty array, but there is also an error on the libc-client error stack ("Unknown search criterion: UNSUPPORTED (errflg=2)"). If, on the other hand, unsupported `$criteria` or unsupported `$flags` are passed, the function returns `false`. We solve this inconsistency by returning `false` for unsupported `$search_criteria` as well. Closes GH-6332.
* 7.3.25 is nextChristoph M. Becker2020-10-134-6/+9
|
* Fix #80226: imap_sort() leaks sortpgm memoryChristoph M. Becker2020-10-123-0/+15
| | | | | | We need to free what we have allocated. Closes GH-6327.
* Fix #80216: imap_mail_compose() does not validate types/encodingsChristoph M. Becker2020-10-123-9/+37
| | | | | | | We need to check whether the given `type`s and `encoding`s are within bounds to avoid segfaults and out-of-bound reads. Closes GH-6323.
* Fix #80223: imap_mail_compose() leaks envelope on malformed bodiesChristoph M. Becker2020-10-123-2/+21
| | | | | | We have to clean up even on failure. Closes GH-6322.
* Fix #80220: imap_mail_compose() may leak memoryChristoph M. Becker2020-10-122-1/+2
| | | | | | | | | Unless `topbod` is of `TYPEMULTIPART`, `mail_free_body()` does not free the `nested.part`; while we could do this ourselves, instead we just ignore additional bodies in this case, i.e. we don't attach them in the first place. Closes GH-6321.
* Detect self-addition of array more accuratelyNikita Popov2020-10-122-1/+11
| | | | | | | While the zvals may be different, they may still point to the same array. Fixes oss-fuzz #26245.
* Deindirect source elements in zend_hash_mergeNikita Popov2020-10-122-13/+33
| | | | | | | | 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.
* Fixed test for bug #48097 due to confirmed data changes in timelibDerick Rethans2020-10-111-9/+7
|
* Fix #80215: imap_mail_compose() may modify by-val parametersChristoph M. Becker2020-10-103-1/+78
| | | | | | | | | We separate the input arrays and all sub-arrays to avoid modification of the passed parameters. This should be rewritten to use `zend_string`s for the "master" branch. Closes GH-6316.
* Fix #80213: imap_mail_compose() segfaults on certain $bodiesChristoph M. Becker2020-10-103-0/+28
| | | | | | | We have to cater to non-associative arrays where the key may be `NULL`; we just skip these elements. Closes GH-6315.
* Make iconv errno support test pass on Solaris.Petr Sumbera2020-10-091-1/+1
| | | | Closes GH-6291.
* XFAIL test broken by timelib updateNikita Popov2020-10-091-0/+2
| | | | | I was expecting this to get fixed quickly, but it didn't. XFAIL for now.
* Updated to version 2020.2 (2020b)Derick Rethans2020-10-081-853/+724
|
* Updated to version 2020.2 (2020b)Derick Rethans2020-10-081-1/+1
|
* Fix too strict imap test expectationsChristoph M. Becker2020-10-082-2/+2
|
* Fix #77040: tidyNode::isHtml() is completely brokenChristoph M. Becker2020-10-073-4/+37
| | | | | | | | | | | | | | | | The documentation of `tidyNode::isHtml()` states that this method "checks if a node is part of a HTML document". That is, of course, nonsense, since a tidyNode is "an HTML node in an HTML file, as detected by tidy." What this method is actually supposed to do is to check whether a node is an element (unless it is the root element). This has been broken by commit d8eeb8e[1], which assumed that `enum TidyNodeType` would represent flags of a bitmask, what it does not. [1] <http://git.php.net/?p=php-src.git;a=commit;h=d8eeb8e28673236bca3f066ded75037a5bdf6378> Closes GH-6290.
* Fix #80185: jdtounix() fails after 2037Christoph M. Becker2020-10-074-2/+41
| | | | | | | | There is no such thing as the "end of the unix epoch", and if it was, it would certainly not be 2037-10-11T02:00:00. There is, however, potential integer overflow which we need to avoid. Closes GH-6288.
* Fix #46050: odbc_next_result corrupts prepared resourceChristoph M. Becker2020-10-053-0/+29
| | | | When resetting the result's values, we also have to reset its numcols.