aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuus Sliepen <gsliepen@google.com>2023-05-23 20:34:42 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-18 04:30:04 +0000
commitcef0c0872c7d9f236ba4a5be6d1c7b5cc84736fd (patch)
tree6271efe4bd2aa4587ca8f98f963e8d25694fcb35
parentee37623c4af0b2a0a22729bfb9f517b7d148daab (diff)
downloadandroid-nn-driver-cef0c0872c7d9f236ba4a5be6d1c7b5cc84736fd.tar.gz
android-nn-driver: prevent out of bounds read
Add a missing check in executeFenced() that fence handles have a filedescriptor associated with them. Bug: 256590035 Test: manual verification (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:671afb13d1acf98b836e0b7afb5cd14d787d74b1) Merged-In: Ib571f268c9ee3fe674b6ef83ed5553e49b541736 Change-Id: Ib571f268c9ee3fe674b6ef83ed5553e49b541736
-rw-r--r--ArmnnPreparedModel_1_3.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/ArmnnPreparedModel_1_3.cpp b/ArmnnPreparedModel_1_3.cpp
index bd5261e..353bdaf 100644
--- a/ArmnnPreparedModel_1_3.cpp
+++ b/ArmnnPreparedModel_1_3.cpp
@@ -343,6 +343,12 @@ Return<void> ArmnnPreparedModel_1_3<HalVersion>::executeFenced(const V1_3::Reque
return Void();
}
+ if (fenceNativeHandle->numFds != 1)
+ {
+ cb(V1_3::ErrorStatus::INVALID_ARGUMENT, hidl_handle(nullptr), nullptr);
+ return Void();
+ }
+
if (sync_wait(fenceNativeHandle->data[0], -1) < 0)
{
ALOGE("ArmnnPreparedModel_1_3::executeFenced sync fence failed.");