summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavneet <rdhanjal@google.com>2023-06-02 22:24:10 +0000
committerRavneet Dhanjal <rdhanjal@google.com>2023-06-05 22:05:14 +0000
commit6316a79500a303cd642efc79ef9e134f3b3cb4d7 (patch)
tree0213509366058b560461bca5a88bfd3fb738ba9c
parent098a0ef0e9e9ed875a7afe07ee25b19b5011a8af (diff)
downloadcamera-6316a79500a303cd642efc79ef9e134f3b3cb4d7.tar.gz
Validate camera metadata sizeandroid14-dev
- Check that the metadata expected size matches the reported size Test: CTS test Bug: 274445725 Change-Id: I0e2dc8e4a87947518d0bc1bdeb057c9eff31bcba
-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) {