Merge "Fix potential NULL dereference errors." am: bce5b2f971

am: 76451438d9

Change-Id: I517c8215dd8201d29d7f97ba7017164679559572
This commit is contained in:
George Burgess IV
2019-01-18 19:08:08 -08:00
committed by android-build-merger

View File

@@ -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;