From 28954cc7d966137569d10ee792c6bcbc66a445b2 Mon Sep 17 00:00:00 2001 From: Oleg Petsjonkin Date: Tue, 2 May 2023 13:07:50 +0000 Subject: [PATCH] Fail WorkSourceTest if reading from parcel failed ag/22101925 followup Bug: b/237719490 Test: atest WorkSourceParcelTest Change-Id: I50939543302dbcae0c107592fb626d2c89fcbe3e --- .../coretests/jni/NativeWorkSourceParcelTest.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/tests/coretests/jni/NativeWorkSourceParcelTest.cpp b/core/tests/coretests/jni/NativeWorkSourceParcelTest.cpp index db1f7bde4b4f7..187e2c137f855 100644 --- a/core/tests/coretests/jni/NativeWorkSourceParcelTest.cpp +++ b/core/tests/coretests/jni/NativeWorkSourceParcelTest.cpp @@ -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)",