Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e485264f authored by George Burgess IV's avatar George Burgess IV Committed by George Burgess
Browse files

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
parent e8ad8b7f
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -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;
    }