summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2019-01-19 02:39:35 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2019-01-19 02:39:35 +0000
commitbce5b2f971b6252fbe29ea96560a77cdaa48b264 (patch)
tree9b7cdececccb57a1af5d103b7115d630ae8fcf68
parent98391daa29771884f13e3cd4138651dd166cf669 (diff)
parenta8626ae8de9b66235e0093ca6c5db4e0be0d4064 (diff)
Merge "Fix potential NULL dereference errors."
-rw-r--r--media/jni/android_mtp_MtpDatabase.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/media/jni/android_mtp_MtpDatabase.cpp b/media/jni/android_mtp_MtpDatabase.cpp
index 4d8c96fadaa9..213c3d9b120c 100644
--- a/media/jni/android_mtp_MtpDatabase.cpp
+++ b/media/jni/android_mtp_MtpDatabase.cpp
@@ -708,6 +708,24 @@ MtpResponseCode MtpDatabase::getObjectPropertyList(MtpObjectHandle handle,
int type = dataTypes[i];
packet.putUInt16(type);
+ if (type == MTP_TYPE_STR) {
+ jstring value = (jstring)env->GetObjectArrayElement(stringValuesArray, i);
+ const char *valueStr = (value ? env->GetStringUTFChars(value, NULL) : NULL);
+ if (valueStr) {
+ packet.putString(valueStr);
+ env->ReleaseStringUTFChars(value, valueStr);
+ } else {
+ packet.putEmptyString();
+ }
+ env->DeleteLocalRef(value);
+ continue;
+ }
+
+ if (!longValues) {
+ ALOGE("bad longValuesArray value in MyMtpDatabase::getObjectPropertyList");
+ continue;
+ }
+
switch (type) {
case MTP_TYPE_INT8:
packet.putInt8(longValues[i]);
@@ -739,18 +757,6 @@ MtpResponseCode MtpDatabase::getObjectPropertyList(MtpObjectHandle handle,
case MTP_TYPE_UINT128:
packet.putUInt128(longValues[i]);
break;
- case MTP_TYPE_STR: {
- jstring value = (jstring)env->GetObjectArrayElement(stringValuesArray, i);
- const char *valueStr = (value ? env->GetStringUTFChars(value, NULL) : NULL);
- if (valueStr) {
- packet.putString(valueStr);
- env->ReleaseStringUTFChars(value, valueStr);
- } else {
- packet.putEmptyString();
- }
- env->DeleteLocalRef(value);
- break;
- }
default:
ALOGE("bad or unsupported data type in MtpDatabase::getObjectPropertyList");
break;