summaryrefslogtreecommitdiff
path: root/src/plugins/platforms/android/androidjnimain.cpp
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2022-03-04 15:19:08 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-03-04 23:21:48 +0000
commit4d09496284f3e18a9f2e34d992ec5b4dd0229c39 (patch)
treeca22af335f65b0bc23a0e332adad44a0026fd52b /src/plugins/platforms/android/androidjnimain.cpp
parent1b6cf23aa4afbc7aa2f979405335ea0d83f9dbba (diff)
downloadqtbase-4d09496284f3e18a9f2e34d992ec5b4dd0229c39.tar.gz
Android: terminate argv passed to main() with nullptr
the char array of argv passed to the app's main() function need to be null terminated [*] and argv to be **char. [*] http://eel.is/c++draft/basic.start.main#2 Fixes: QTBUG-101028 Change-Id: I6e3a685f092a92a94f60d166357b75d2538af74c Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> (cherry picked from commit daf7f07c1bb00028d7bce6b030f5ade8c4d0da59) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/plugins/platforms/android/androidjnimain.cpp')
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp
index f8f28c61ca..4cdbe4e2ea 100644
--- a/src/plugins/platforms/android/androidjnimain.cpp
+++ b/src/plugins/platforms/android/androidjnimain.cpp
@@ -571,12 +571,14 @@ static void startQtApplication(JNIEnv */*env*/, jclass /*clazz*/)
if (QFile{QStringLiteral("assets:/android_rcc_bundle.rcc")}.exists())
QResource::registerResource(QStringLiteral("assets:/android_rcc_bundle.rcc"));
- QVarLengthArray<const char *> params(m_applicationParams.size());
- for (int i = 0; i < m_applicationParams.size(); i++)
- params[i] = static_cast<const char *>(m_applicationParams[i].constData());
+ const int argc = m_applicationParams.size();
+ QVarLengthArray<char *> argv(argc + 1);
+ for (int i = 0; i < argc; i++)
+ argv[i] = m_applicationParams[i].data();
+ argv[argc] = nullptr;
startQtAndroidPluginCalled.fetchAndAddRelease(1);
- int ret = m_main(m_applicationParams.length(), const_cast<char **>(params.data()));
+ int ret = m_main(argc, argv.data());
if (m_mainLibraryHnd) {
int res = dlclose(m_mainLibraryHnd);