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

Commit dbfb1d9b authored by Devin Moore's avatar Devin Moore
Browse files

Return STATUS_UNEXPECTED_NULL instead of STATUS_NO_MEMORY

...when the allocation fails and len <= 0. This is the expected
behavior that we have elsewhere when failing to allocate.

Flag: EXEMPT bug fix
Test: CtsNdkBinderTestCases
Bug: 404865966

Change-Id: I797aed6dd830753cdf3482fe4fd38ef1525f41aa
parent 87816ee5
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -460,7 +460,13 @@ binder_status_t AParcel_readStringArray(const AParcel* parcel, void* arrayData,
        return status;
    }

    if (!allocator(arrayData, length)) return STATUS_NO_MEMORY;
    if (!allocator(arrayData, length)) {
        if (length < 0) {
            return STATUS_UNEXPECTED_NULL;
        } else {
            return STATUS_NO_MEMORY;
        }
    }

    if (length == -1) return STATUS_OK;  // null string array

@@ -504,7 +510,13 @@ binder_status_t AParcel_readParcelableArray(const AParcel* parcel, void* arrayDa
        return status;
    }

    if (!allocator(arrayData, length)) return STATUS_NO_MEMORY;
    if (!allocator(arrayData, length)) {
        if (length < 0) {
            return STATUS_UNEXPECTED_NULL;
        } else {
            return STATUS_NO_MEMORY;
        }
    }

    if (length == -1) return STATUS_OK;  // null array