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

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

Merge "Fail WorkSourceTest if reading from parcel failed" into udc-dev am:...

Merge "Fail WorkSourceTest if reading from parcel failed" into udc-dev am: 68835395 am: bd5528ae

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



Change-Id: I4a00dfff5674abb4499daa29640dbcfbdbfd628d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents edfc3b7f bd5528ae
Loading
Loading
Loading
Loading
+9 −6
Original line number Original line Diff line number Diff line
@@ -77,15 +77,18 @@ static void nativeUnparcelAndVerifyWorkSource(JNIEnv* env, jobject /* obj */, jo
    Parcel* parcel = nativeGetParcelData(env, wsParcel);
    Parcel* parcel = nativeGetParcelData(env, wsParcel);
    int32_t endMarker;
    int32_t endMarker;


    // read WorkSource and if no error read end marker
    status_t err = ws.readFromParcel(parcel);
    status_t err = ws.readFromParcel(parcel) ?: parcel->readInt32(&endMarker);
    int32_t dataAvailable = parcel->dataAvail();

    if (err != OK) {
    if (err != OK) {
        ALOGE("WorkSource readFromParcel failed %d", err);
        jniThrowException(env, "java/lang/IllegalArgumentException",
                StringPrintf("WorkSource readFromParcel failed: %d", err).c_str());
    }
    err = parcel->readInt32(&endMarker);
    if (err != OK) {
        jniThrowException(env, "java/lang/IllegalArgumentException",
                StringPrintf("Failed to read endMarker: %d", err).c_str());
    }
    }

    // Now we have a native WorkSource object, verify it.
    // Now we have a native WorkSource object, verify it.
    int32_t dataAvailable = parcel->dataAvail();
    if (dataAvailable > 0) { // not all data read from the parcel
    if (dataAvailable > 0) { // not all data read from the parcel
        jniThrowException(env, "java/lang/IllegalArgumentException",
        jniThrowException(env, "java/lang/IllegalArgumentException",
                StringPrintf("WorkSource contains more data than native read (%d)",
                StringPrintf("WorkSource contains more data than native read (%d)",