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

Commit 74c60fba authored by Daniel Colascione's avatar Daniel Colascione
Browse files

Avoid interface name copy in HwParcel

Test: builds
Change-Id: I9ad7403707aac6af8b5f68375527dd8250c2c8fc
parent bcd771bd
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -292,19 +292,11 @@ static void JHwParcel_native_enforceInterface(
        return;
    }

    const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL);
    const char *interfaceName = env->GetStringUTFChars(interfaceNameObj, NULL);
    if (interfaceName) {
        String8 interfaceNameCopy = String8(String16(
                reinterpret_cast<const char16_t *>(interfaceName),
                env->GetStringLength(interfaceNameObj)));

        env->ReleaseStringCritical(interfaceNameObj, interfaceName);
        interfaceName = NULL;

        hardware::Parcel *parcel =
            JHwParcel::GetNativeContext(env, thiz)->getParcel();

        bool valid = parcel->enforceInterface(interfaceNameCopy.string());
        bool valid = parcel->enforceInterface(interfaceName);

        if (!valid) {
            jniThrowException(
@@ -312,6 +304,7 @@ static void JHwParcel_native_enforceInterface(
                    "java/lang/SecurityException",
                    "HWBinder invocation to an incorrect interface");
        }
        env->ReleaseStringUTFChars(interfaceNameObj, interfaceName);
    }
}