summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix testphp-7.3.16PHP-7.3.16Stanislav Malyshev2020-03-171-1/+1
| | | | (cherry picked from commit 62e7b80267ac50364c0d74d3cd567da90639534b)
* Bump versionChristoph M. Becker2020-03-174-5/+5
|
* Fix #79371: mb_strtolower (UTF-32LE): stack-buffer-overflowChristoph M. Becker2020-03-173-1/+19
| | | | | | We make sure that negative values are properly compared. (cherry picked from commit 1fdffd1c55d771ca22ae217784ab75fce592ad38)
* Fixed bug #79282Stanislav Malyshev2020-03-173-1/+25
| | | | (cherry picked from commit 25238bdf6005b85ab844aa2b743b589dfce9f0d2)
* Fix bug #79329 - get_headers should not accept \0Stanislav Malyshev2020-03-172-1/+3
| | | | (cherry picked from commit 69fdc14152edefd75a33be7fe87d1194098c67f7)
* Bump versionphp-7.3.16RC1Christoph M. Becker2020-03-034-5/+5
|
* Update libmagic.patchChristoph M. Becker2020-03-022-66/+110
| | | | | | | | 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.
* Fix #79333: com_print_typeinfo() leaks memoryChristoph M. Becker2020-03-022-1/+2
| | | | | | | | 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.
* Fix #79332: php_istreams are never freedChristoph M. Becker2020-03-023-10/+20
| | | | | | | | | | 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.
* Fixed bug #79062Nikita Popov2020-02-284-118/+162
| | | | Back up the doc comment when performing heredoc scanahead.
* Fix #79311: enchant_dict_suggest() fails on big endian architectureChristoph M. Becker2020-02-282-10/+10
| | | | | | | | | | 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.
* Fix #79315 ZipArchive::addFile doesn't honor start/length parametersRemi Collet2020-02-282-1/+13
|
* Fixed incorrect overflow detectionDmitry Stogov2020-02-271-2/+2
|
* Add upgrading node regarding fix for bug #79271Christoph M. Becker2020-02-271-0/+6
| | | | Cf. <https://github.com/php/php-src/pull/5180#issuecomment-590259750>ff.
* Fixed incorrect behavior of internal memory debuggerDmitry Stogov2020-02-271-0/+1
|
* Fix #64032: mysqli reports different client_versionChristoph M. Becker2020-02-272-1/+4
| | | | | | | | | | While `mysqli_get_client_version()` calls `mysql_get_client_version()` to retrieve the client version, `mysql::$client_version` is initialized to `MYSQL_VERSION_ID`. Both should match though, and since the former is the more useful information, we fix `mysql::$client_version`. We do not add a regression test, because it would usually succeed anyway, and we already have several tests with respective `assert()`s.
* Fix #63206: Fully support error/exception_handler stacking, even with null ↵Mark Plomer2020-02-255-5/+90
| | | | | | | | | | | or inside the handler Always push the current user_error/exception_handler to the stack, even when it is empty, so restore_error_handler() always works as expected. The user_error_handler is especially temporarily empty when we are inside the error handler, which caused inconsistent behaviour before.
* Don't treat any WS as start of headerNikita Popov2020-02-242-3/+40
| | | | | Check that the header occurs after \n, not other whitespace characters.
* Reduce code duplication in HTTP header checksNikita Popov2020-02-241-62/+25
|
* Fixes #79265: Improper injection of Host header when using fopen for http ↵Miguel Xavier Penha Neto2020-02-243-28/+104
| | | | | | | requests Check all occurrences of the string "host:" (and other headers), not just the first one.
* Fix #79299: com_print_typeinfo prints duplicate variablesChristoph M. Becker2020-02-233-1/+23
| | | | | | | `lastid` has to retain its value during the traversal, so we move it to an outer scope. Patch contributed by Litiano Moura.
* Fix #79294: ::columnType() may fail after SQLite3Stmt::reset()Christoph M. Becker2020-02-214-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | The fix for feature request #53466 did not properly handle resetting of the corresponding statement; the problem with this is that the statement does not know about its result sets. But even if we could fix this, the `complete` handling still appears to be brittle, since the `sqlite3_column_type()`docs[1] state: | If the SQL statement does not currently point to a valid row, or if | the column index is out of range, the result is undefined. Fortunately, we can use `sqlite3_data_count()` instead, since[2]: | If prepared statement P does not have results ready to return (via | calls to the sqlite3_column() family of interfaces) then | sqlite3_data_count(P) returns 0. Thus, we guard `SQLite3::columnType()` with `sqlite3_data_count()`, and completely drop updating the `php_sqlite3_result_object.complete` field, but keep it for ABI BC purposes. [1] <https://www.sqlite.org/c3ref/column_blob.html> [2] <https://www.sqlite.org/c3ref/data_count.html>
* Add test for bug #78569Christoph M. Becker2020-02-211-0/+20
|
* Fix NEWS [ci skip]Christoph M. Becker2020-02-201-2/+2
| | | | Cosmetics.
* Remove extra tab in NEWS [ci skip]Christoph M. Becker2020-02-181-1/+1
|
* Merge branch 'PHP-7.2' into PHP-7.3Remi Collet2020-02-180-0/+0
|\ | | | | | | | | * PHP-7.2: bump version to 7.2.29
| * bump version to 7.2.29Remi Collet2020-02-183-5/+8
| |
* | Fix #79038: PDOStatement::nextRowset() leaks column valuesChristoph M. Becker2020-02-173-6/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Firstly, we must not rely on `stmt->column_count` when freeing the driver specific column values, but rather store the column count in the driver data. Since the column count is a `short`, 16 bit are sufficient, so we can store it in reserved bits of `pdo_odbc_stmt`. Furthermore, we must not allocate new column value storage when the statement is not executed, but rather when the column value storage has not been allocated. Finally, we have to introduce a driver specific `cursor_closer` to avoid that `::closeCursor()` calls `odbc_stmt_next_rowset()` which then frees the column value storage, because it may be still needed for bound columns.
* | Fix NEWS [ci skip]Christoph M. Becker2020-02-171-10/+8
| |
* | Merge branch 'PHP-7.2' into PHP-7.3Christoph M. Becker2020-02-171-0/+10
|\ \ | |/ | | | | | | * PHP-7.2: Update NEWS [ci skip]
| * Update NEWS [ci skip]Christoph M. Becker2020-02-171-0/+8
| |
* | Merge branch 'PHP-7.2' into PHP-7.3Christoph M. Becker2020-02-170-0/+0
|\ \ | |/ | | | | | | | | | | * PHP-7.2: Mark bug76348.phpt as online test Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
| * Mark bug76348.phpt as online testNikita Popov2020-02-161-0/+1
| |
| * Fix bug #79082 - Files added to tar with Phar::buildFromIterator have ↵Stanislav Malyshev2020-02-164-0/+65
| | | | | | | | all-access permissions
| * Fix bug #79221 - Null Pointer Dereference in PHP Session Upload ProgressStanislav Malyshev2020-02-152-4/+51
| |
* | Fix # 79171: heap-buffer-overflow in phar_extract_fileChristoph M. Becker2020-02-171-1/+1
| | | | | | | | We must not access memory outside of the allocated buffer.
* | Fix bug #79082 - Files added to tar with Phar::buildFromIterator have ↵Stanislav Malyshev2020-02-174-0/+65
| | | | | | | | all-access permissions
* | Fix bug #79221 - Null Pointer Dereference in PHP Session Upload ProgressStanislav Malyshev2020-02-172-4/+51
| |
* | Fix #79271: DOMDocumentType::$childNodes is NULLChristoph M. Becker2020-02-174-9/+23
| | | | | | | | | | Dom level 2 core, DOM level 3 core and the DOM living standard agree that `childNodes` always return a `NodeList`, and never `null`.
* | Merge branch 'PHP-7.2' into PHP-7.3Christoph M. Becker2020-02-142-2/+2
|\ \ | |/ | | | | | | * PHP-7.2: Fix typo in recent bugfix
| * Fix typo in recent bugfixChristoph M. Becker2020-02-142-2/+2
| |
* | Merge branch 'PHP-7.2' into PHP-7.3Christoph M. Becker2020-02-133-1/+19
|\ \ | |/ | | | | | | * PHP-7.2: Fix #77569: Write Acess Violation in DomImplementation
| * Fix #77569: Write Acess Violation in DomImplementationChristoph M. Becker2020-02-133-1/+18
| | | | | | | | We must not assume that the zval IS_STRING.
* | Fix #79254: getenv() w/o arguments not showing changesChristoph M. Becker2020-02-113-24/+68
| | | | | | | | | | | | | | | | | | | | To be able to see changes done only with `SetEnvironmentVariable()`, we have to use `GetEnvironmentStrings()` instead of `environ`, because the latter sees only changes done with `putenv()`. For best backward compatibility we're using `GetEnvironmentStringsA()`; switching to the wide string version likely makes sense for master, though.
* | Fix #79248: Traversing empty VT_ARRAY throws com_exceptionChristoph M. Becker2020-02-083-1/+18
| | | | | | | | | | | | If the `VT_ARRAY` is empty, i.e. its upperbound is less than its lower bound, we must not call `php_com_safearray_get_elem()`, because that function throws in this case.
* | Skip test case on x86 where it otherwise fails [ci skip]Christoph M. Becker2020-02-071-1/+3
| | | | | | | | | | `-2200000000` can't be converted to integer on x86, so the constructor call would fail.
* | Fix #79242: COM error constants don't match com_exception codesChristoph M. Becker2020-02-073-1/+29
| | | | | | | | | | | | | | | | | | | | | | Because a `HRESULT` is a `LONG`[1], no special treatment is required on x86 platforms to get appropriate values. On x64 platforms we prefer positive values, what we could accomplish by casting the `HRESULT` value to `ULONG` and then to `zend_long`, but since the current behavior is correct and the performance improvement is negligible, we defer that to master. [1] <https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types#hresult>
* | Fix #66322: COMPersistHelper::SaveToFile can save to wrong locationChristoph M. Becker2020-02-063-1/+29
| | | | | | | | | | Saving under the given `filename` may also work, but since `::LoadFromFile` uses the `fullpath` we follow suit.
* | Fixed bug #79188Nikita Popov2020-02-053-18/+33
| |
* | Next is 7.3.16Christoph M. Becker2020-02-044-6/+8
| |