Go to file
Marc Mutz 46af1fe49f SQL/ODBC: fix some users of toSQLTCHAR() to not assume identical UTF-8/16/32 string lengths
We already fixed the implementation of toSQLTCHAR() in
66767eea46 to not assume that a UTF-8 or
UTF-32-encoded string has the same number of code points as the
equivalent UTF-16 string, but it turns out that users of the function,
as well as other code, also failed to account for this.

This patch fixes callers of toSQLTCHAR() to use

    const auto encoded = toSQLTCHAR(s);
    ~~~ use encoded.data(), encoded.size() ~~~

(except we can't make `encoded` const, because the SQL API isn't
const-correct and takes void* instead of const void*) instead of the
anti-pattern

   ~~~ use toSQLTCHAR(s).data(), s.size() ~~~

As a drive-by:
- Extract Method qt_string_SQLSetConnectAttr()
  - skipping an unneeded .utf16() call (a NUL-terminated string is not
    required for calling toSQLTCHAR())
- de-duplicate some code in exec()
  - and make a comment there slightly more informative
- replace
  - NULL with nullptr
  - size() == 0 with isEmpty()
  - C-style with constructor-style casts

Pick-to: 6.5 6.4 6.2 5.15
Change-Id: I3696381d0a93af8861ce2b7915f212d9e5e9a243
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2023-02-02 06:33:48 +01:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Use the Windows path separator in a Batch file 2023-01-09 14:39:27 +01:00
cmake Revert "Add support for MultiABI with custom install dir of the android-build" 2023-02-01 16:18:55 +00:00
coin Coin: Increase CPU core count to 8 2023-01-23 15:57:55 +02:00
config.tests Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Remove wiggly example 2023-01-31 22:28:30 +01:00
examples permissions: Finalize permission example at end of CMakeLists.txt 2023-02-01 20:25:08 +01: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 Add license text file for Creative Commons Zero (CC0) 1.0 2022-10-19 12:06:09 +02:00
mkspecs Revert "Add support for MultiABI with custom install dir of the android-build" 2023-02-01 16:18:55 +00:00
qmake Make qmake and qtpaths report Qt version baked into the binaries 2023-01-18 13:21:05 +01:00
src SQL/ODBC: fix some users of toSQLTCHAR() to not assume identical UTF-8/16/32 string lengths 2023-02-02 06:33:48 +01:00
tests QStandardPaths/unix: ignore relative paths in all $XDG_* env vars 2023-02-01 19:46:02 +00:00
util Allow filtering of test functions to run in WASM testrunner 2023-01-30 13:55:58 +01:00
.cmake.conf Enable QT_NO_AS_CONST globally 2023-01-05 15:09:49 +01: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 Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02: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 Update -redo option such that it removes CMakeCache.txt and CMakeFiles/ 2022-12-01 02:23:51 +01:00
configure Fix bash-ism in configure; /bin/sh doesn't handle += 2023-01-24 18:48:15 +00:00
configure.bat Fix a bug in -redo where -redo was not considering new options 2023-01-19 13:19:20 +01:00
configure.cmake Add find package for lttng library so that it gets added to target 2023-01-13 12:43:45 +02: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 QCryptographicHash: implement OpenSSL 3.0 support 2022-09-26 17:26:37 +02:00
sync.profile Move qurltlds_p.h out of src/network, and make it a .cpp file 2022-10-01 06:24:51 +00:00