Go to file
Ivan Solovev e150bcfe4d QByteArray: fix indexOf/lastIndexOf
This patch fixed two bugs in indexOf/lastIndexOf:
1. The lastIndexOf(char, qsizetype) overload was crashing with an empty
   QByteArray. It was unconditionally calling lastIndexOfCharHelper()
   which assumes that this QBA is not empty. An explicit check for
   the empty case is added.
2. The indexOf(QByteArray, qsizetype) overload was behaving incorrectly
   while searching for an empty QByteArray. In this case it
   unconditionally returned its second parameter (from). However, from
   can be negative, or even exceed the size of this QByteArray. This
   patch handles this cases properly.

As a drive-by: this patch adjusts the QByteArray::indexOf(char, qsizetype)
and QByteArray::lastIndexOf(char, qsizetype) overloads to match with the
QByteArrayView implementation. This is done to have similar code paths
in both cases and avoid tricky bugs in future.
Ideally we had to adjust the QByteArrayView implementation, but it's
fully inline, so can't be changed without breaking BC.

Task-number: QTBUG-91736
Pick-to: 6.2 6.1
Change-Id: Iaef2fdc5b99cce6aa342cca2d17544a1ad7ca677
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2021-07-29 15:00:35 +02:00
.github/workflows Github Actions: many minor updates 2021-01-22 18:48:54 +01:00
bin CMake: Allow usage of QtStandaloneTestTemplateProject as package component 2021-04-23 13:31:04 +02:00
cmake CMake: Bump min required CMake version for shared Qt builds to 3.16 2021-07-28 20:54:14 +02:00
coin Make Integrity to use cross compile instructions 2021-07-15 18:56:23 +03:00
config.tests Fix the precompile_header configure test 2021-06-19 01:08:23 +02:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Doc: Terminate C-comment 2021-06-30 13:36:26 +02:00
examples Rename QPermission namespace to QApplicationPermission 2021-07-15 01:57:41 +03:00
lib
libexec Fix global header exclusion regex 2021-07-09 13:56:18 +02:00
mkspecs Fix location of qtattributionsscanner 2021-07-14 18:16:15 +02:00
qmake QDirIterator: add nextFileInfo() 2021-07-28 15:16:42 +02:00
src QByteArray: fix indexOf/lastIndexOf 2021-07-29 15:00:35 +02:00
tests QByteArray: fix indexOf/lastIndexOf 2021-07-29 15:00:35 +02:00
util locale_database: Use context manager interface to update source files 2021-07-20 16:51:51 +02:00
.cmake.conf CMake: Bump min required CMake version for shared Qt builds to 3.16 2021-07-28 20:54:14 +02:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore .gitignore: Ignore __pycache__ directories 2021-07-07 19:05:25 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.qmake.conf Bump version 2021-02-18 07:20:21 +02:00
.tag
CMakeLists.txt CMake: Bump min required CMake version for shared Qt builds to 3.16 2021-07-28 20:54:14 +02:00
conanfile.py Conan: simplify Conan recipe 2021-06-21 15:19:16 +03:00
config_help.txt configure: Note that -linker works also with clang 2021-07-12 14:46:56 +02:00
configure Remove unsupported host-related configure options 2021-07-06 08:53:52 +02:00
configure.bat Remove superfluous variable assignments from configure.bat 2021-03-11 16:39:54 +01:00
configure.cmake Don't repeat conditions of use_*_linker features in QtFeature.cmake 2021-07-13 15:27:23 +02:00
dependencies.yaml
LICENSE.FDL
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT
LICENSE.LGPL3
LICENSE.LGPLv3
LICENSE.QT-LICENSE-AGREEMENT
qt_cmdline.cmake Remove unsupported host-related configure options 2021-07-06 08:53:52 +02:00
sync.profile Implement generating of a module cpp export header 2021-06-24 20:40:49 +02:00