status_t Parcel::writeInt32Array(size_t len, const int32_t *val) {
 if (len > INT32_MAX) {
 return BAD_VALUE;
 }

 if (!val) {
 return writeInt32(-1);
 }
 status_t ret = writeInt32(static_cast<uint32_t>(len));
 if (ret == NO_ERROR) {
        ret = write(val, len * sizeof(*val));
 }
 return ret;
}

The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.