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

Commit 40e5212a authored by Narayan Kamath's avatar Narayan Kamath Committed by android-build-merger
Browse files

Merge "Parcel: Handle NULL return from Parcel::readInPlace."

am: e6d7a51a

Change-Id: Ie266714a2b22724db366520d58e9d8a2162d6fe0
parents 0f148251 e6d7a51a
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -336,8 +336,13 @@ static jbyteArray android_os_Parcel_createByteArray(JNIEnv* env, jclass clazz, j
                jbyte* a2 = (jbyte*)env->GetPrimitiveArrayCritical(ret, 0);
                if (a2) {
                    const void* data = parcel->readInplace(len);
                    if (data) {
                        memcpy(a2, data, len);
                    }
                    env->ReleasePrimitiveArrayCritical(ret, a2, 0);
                    if (!data) {
                        ret = NULL;
                    }
                }
            }
        }
@@ -360,9 +365,14 @@ static jboolean android_os_Parcel_readByteArray(JNIEnv* env, jclass clazz, jlong
        jbyte* ar = (jbyte*)env->GetPrimitiveArrayCritical((jarray)dest, 0);
        if (ar) {
            const void* data = parcel->readInplace(len);
            if (data) {
                memcpy(ar, data, len);
            env->ReleasePrimitiveArrayCritical((jarray)dest, ar, 0);
                ret = JNI_TRUE;
            } else {
                ret = JNI_FALSE;
            }

            env->ReleasePrimitiveArrayCritical((jarray)dest, ar, 0);
        }
    }
    return ret;