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

Commit 41f79e81 authored by Steven Moreland's avatar Steven Moreland Committed by Automerger Merge Worker
Browse files

Merge "HwBlob: explicit size check" am: 4becb193 am: d35ef5ae

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1552564

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id50bafde7be609f4908b47d9bf5e69f69f75ce50
parents 5a1e5ac1 d35ef5ae
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -257,7 +257,17 @@ jobject JHwBlob::NewObject(JNIEnv *env, size_t size) {
    // XXX Again cannot refer to gFields.constructID because InitClass may
    // not have been called yet.

    return env->NewObject(clazz.get(), constructID, size);
    // Cases:
    // - this originates from another process (something so large should not fit
    //   in the binder buffer, and it should be rejected by the binder driver)
    // - if this is used in process, this code makes too many heap copies (in
    //   order to retrofit HIDL's scatter-gather format to java types) to
    //   justify passing such a large amount of data over this path. So the
    //   alternative (updating the constructor and other code to accept other
    //   types, should also probably not be taken in this case).
    CHECK_LE(size, std::numeric_limits<jint>::max());

    return env->NewObject(clazz.get(), constructID, static_cast<jint>(size));
}

}  // namespace android