MTP: fix a memory leak

We unconditionally leak every instance that we `new` of this. Move it to
the stack to fix this, since it doesn't need to be on the heap.

Bug: 188752500
Test: TreeHugger

Change-Id: I24ed3bb29c5a6912398a9e00e7748fd406cf6a62
This commit is contained in:
George Burgess IV
2021-07-19 07:43:00 +00:00
committed by George Burgess
parent e8ad8b7ff4
commit e485264ff5

View File

@@ -416,20 +416,14 @@ android_mtp_MtpDevice_set_device_property_init_version(JNIEnv *env, jobject thiz
return -1;
}
MtpProperty* property = new MtpProperty(MTP_DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO,
MTP_TYPE_STR, true);
if (!property) {
env->ThrowNew(clazz_io_exception, "Failed to obtain property.");
return -1;
}
if (property->getDataType() != MTP_TYPE_STR) {
MtpProperty property(MTP_DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO, MTP_TYPE_STR, true);
if (property.getDataType() != MTP_TYPE_STR) {
env->ThrowNew(clazz_io_exception, "Unexpected property data type.");
return -1;
}
property->setCurrentValue(propertyStr);
if (!device->setDevicePropValueStr(property)) {
property.setCurrentValue(propertyStr);
if (!device->setDevicePropValueStr(&property)) {
env->ThrowNew(clazz_io_exception, "Failed to obtain property value.");
return -1;
}