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

Commit f1fa3608 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

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



Change-Id: Id81ad41b0df5eaceef16c8dae7ba84394b5f74a6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents b9d28eca 27f9c669
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)",