Merge "Fix potential NULL dereference errors."
This commit is contained in:
@@ -708,6 +708,24 @@ MtpResponseCode MtpDatabase::getObjectPropertyList(MtpObjectHandle handle,
|
|||||||
int type = dataTypes[i];
|
int type = dataTypes[i];
|
||||||
packet.putUInt16(type);
|
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) {
|
switch (type) {
|
||||||
case MTP_TYPE_INT8:
|
case MTP_TYPE_INT8:
|
||||||
packet.putInt8(longValues[i]);
|
packet.putInt8(longValues[i]);
|
||||||
@@ -739,18 +757,6 @@ MtpResponseCode MtpDatabase::getObjectPropertyList(MtpObjectHandle handle,
|
|||||||
case MTP_TYPE_UINT128:
|
case MTP_TYPE_UINT128:
|
||||||
packet.putUInt128(longValues[i]);
|
packet.putUInt128(longValues[i]);
|
||||||
break;
|
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:
|
default:
|
||||||
ALOGE("bad or unsupported data type in MtpDatabase::getObjectPropertyList");
|
ALOGE("bad or unsupported data type in MtpDatabase::getObjectPropertyList");
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user