From 8810d95ab40aeeded9d5c32e64c43e1f20ba0304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 20 Dec 2023 18:21:32 +0100 Subject: [PATCH] Add paranoid error check when listing cameras --- android/jni/app-android.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/android/jni/app-android.cpp b/android/jni/app-android.cpp index acdf51e099..78b4492835 100644 --- a/android/jni/app-android.cpp +++ b/android/jni/app-android.cpp @@ -1482,8 +1482,12 @@ std::vector System_GetCameraDeviceList() { for (int i = 0; i < arrayListObjectLen; i++) { jstring dev = static_cast(getEnv()->CallObjectMethod(deviceListObject, arrayListGet, i)); - const char* cdev = getEnv()->GetStringUTFChars(dev, nullptr); - deviceListVector.push_back(cdev); + const char *cdev = getEnv()->GetStringUTFChars(dev, nullptr); + if (!cdev) { + getEnv()->DeleteLocalRef(dev); + continue; + } + deviceListVector.push_back(std::string(cdev)); getEnv()->ReleaseStringUTFChars(dev, cdev); getEnv()->DeleteLocalRef(dev); }