Go to file
Marc Mutz f73833809b Fix QString::vasprintf for strings > 2GiB
Both format strings > 2GiB, as well as result strings > 2Gi characters
were affected by the append_utf8() helper function being left unported
from int to qsizetype.

There were actually two bugs in that 5LOC function:

1. The len argument was an int, but the caller feeds a difference of
   pointers (even explicitly cast to qsizetype) to the function, so
   any stretch of verbatim text > 2GiB in the format would cause the
   output string to be corrupted.

2. If the result string was already > 2Gi characters in size, a call
   to append_utf8() would truncate it mod INT_MAX, because the
   string's size() was stored in an int variable and the used in a
   resize() call.

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-103531
Change-Id: I0a09d27b7782093d3f8ea17bb621ff8dad375072
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2022-07-26 01:29:15 +02:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Minor fixes for qt-configure-module 2022-06-27 17:55:19 +02:00
cmake CMake: Change __qt_internal_include_plugin_packages to be a macro 2022-07-25 19:52:54 +02:00
coin Adjust documentation build dir for out of source builds 2022-06-27 11:05:23 +00:00
config.tests CMake: add one more test for no_direct_extern_access 2022-07-20 14:54:21 -07:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Move the docs for porting to QRegularExpression to a common place 2022-07-20 13:15:59 +02:00
examples Examples: Use signals, slots instead of Q_SIGNALS, Q_SLOTS 2022-07-21 11:24:36 +02:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
libexec Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
LICENSES Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
mkspecs qmake: Link static plugins even in shared Qt builds 2022-07-25 18:02:37 +02:00
qmake Doc: Clarify qmake's c++latest CONFIG value 2022-06-29 18:32:05 +02:00
src Fix QString::vasprintf for strings > 2GiB 2022-07-26 01:29:15 +02:00
tests Test skip and fail in cleanup() as well as in cleanupTestCase() 2022-07-25 19:29:07 +02:00
util CMake: Rewrite double-conversion find module 2022-07-02 00:11:12 +02:00
.cmake.conf Bump version to 6.5.0 2022-06-06 13:23:59 +03:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Assume qhelpgenerator in libexec instead of bin 2021-11-08 19:27:32 +01:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
CMakeLists.txt Use REALPATH based check for symbolic links on Windows 2022-01-07 14:31:38 +01:00
conanfile.py Conan: Do not force 'qt_host_path' usage in cross-build context 2022-06-22 18:18:42 +03:00
config_help.txt CMake: update the x86 intrinsic checks 2022-06-28 03:28:42 +00:00
configure Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
configure.bat Use SPDX license identifiers 2022-05-16 16:37:38 +02:00
configure.cmake CMake: disable auto-detection of no_direct_extern_access 2022-07-20 14:54:22 -07:00
dependencies.yaml Re-add dependencies.yaml now that qt5.git wip/qt6 builds fine 2019-09-18 13:19:31 +02:00
qt_cmdline.cmake C++23/c++2b support 2022-06-08 19:43:34 +02:00
sync.profile Remove deprecated qgl.h from sync.profile 2022-06-11 00:42:13 +02:00