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

Commit 5d27b94e 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: 27f9c669 am: 9defa10d

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



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

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

    status_t err = ws.readFromParcel(parcel);
    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.
    int32_t dataAvailable = parcel->dataAvail();
    if (dataAvailable > 0) { // not all data read from the parcel
        jniThrowException(env, "java/lang/IllegalArgumentException",
                StringPrintf("WorkSource contains more data than native read (%d)",