summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-06 23:17:23 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-06 23:17:23 +0000
commit45eb91de6dcb551747e753b2a995a19ef0df9f88 (patch)
tree0213509366058b560461bca5a88bfd3fb738ba9c
parentc8a257772ba8284f8624014c5bb9fbeaee44f808 (diff)
parent6316a79500a303cd642efc79ef9e134f3b3cb4d7 (diff)
downloadcamera-android14-security-release.tar.gz
Change-Id: Id1c6d716535097edd13c85e7782dd7f2cba38fc3
-rw-r--r--common/hal/aidl_service/aidl_utils.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/common/hal/aidl_service/aidl_utils.cc b/common/hal/aidl_service/aidl_utils.cc
index 6d5f201..332d1a1 100644
--- a/common/hal/aidl_service/aidl_utils.cc
+++ b/common/hal/aidl_service/aidl_utils.cc
@@ -728,6 +728,15 @@ status_t ConvertToHalMetadata(
metadata =
reinterpret_cast<const camera_metadata_t*>(request_settings.data());
+
+ size_t metadata_size = get_camera_metadata_size(metadata);
+ if (metadata_size != request_settings.size()) {
+ ALOGE(
+ "%s: Mismatch between camera metadata size (%zu) and request "
+ "setting size (%zu)",
+ __FUNCTION__, metadata_size, request_settings.size());
+ return BAD_VALUE;
+ }
}
} else {
// Read the settings from request metadata queue.
@@ -751,6 +760,15 @@ status_t ConvertToHalMetadata(
metadata = reinterpret_cast<const camera_metadata_t*>(
metadata_queue_settings.data());
+
+ size_t metadata_size = get_camera_metadata_size(metadata);
+ if (metadata_size != message_queue_setting_size) {
+ ALOGE(
+ "%s: Mismatch between camera metadata size (%zu) and message "
+ "queue setting size (%u)",
+ __FUNCTION__, metadata_size, message_queue_setting_size);
+ return BAD_VALUE;
+ }
}
if (metadata == nullptr) {