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

Commit d179c3c2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Catch nullptr possibilities in MediaExtractor jni code" into udc-dev...

Merge "Catch nullptr possibilities in MediaExtractor jni code" into udc-dev am: d63a1d16 am: c21e9655

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



Change-Id: I94765039dd315d347bec53aaafa565f54d1c20fa
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents cb29ef2c c21e9655
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -196,6 +196,15 @@ status_t JMediaExtractor::readSampleData(
        dstSize = (size_t) env->GetDirectBufferCapacity(byteBuf);
    }

    // unlikely, but GetByteArrayElements() can fail
    if (dst == nullptr) {
        ALOGE("no buffer into which to read the data");
        if (byteArray != NULL) {
            env->ReleaseByteArrayElements(byteArray, (jbyte *)dst, 0);
        }
        return -ENOMEM;
    }

    if (dstSize < offset) {
        if (byteArray != NULL) {
            env->ReleaseByteArrayElements(byteArray, (jbyte *)dst, 0);
@@ -204,8 +213,10 @@ status_t JMediaExtractor::readSampleData(
        return -ERANGE;
    }

    // passes in the backing memory to use, so it doesn't fail
    sp<ABuffer> buffer = new ABuffer((char *)dst + offset, dstSize - offset);

    buffer->setRange(0, 0);  // mark it empty
    status_t err = mImpl->readSampleData(buffer);

    if (byteArray != NULL) {