From e2d1e3d0436aec645739c65e6d3131dd814f40a1 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Tue, 30 Apr 2013 18:18:06 -0700 Subject: camera: Use new camera_metadata structure validation functions * Reject unvalidated metadata across binder boundaries * Sanity check in-process CameraMetadata when mutating data Bug: 8713951 Change-Id: I121d8e15f8fdc9cdbbaf27dfd947813e11831e1c --- camera/CameraMetadata.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'camera/CameraMetadata.cpp') diff --git a/camera/CameraMetadata.cpp b/camera/CameraMetadata.cpp index 6c3e233..a8f9eff 100644 --- a/camera/CameraMetadata.cpp +++ b/camera/CameraMetadata.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +// #define LOG_NDEBUG 0 + #define LOG_TAG "Camera2-Metadata" #include #include @@ -112,6 +114,10 @@ void CameraMetadata::acquire(camera_metadata_t *buffer) { } clear(); mBuffer = buffer; + + ALOGE_IF(validate_camera_metadata_structure(mBuffer, /*size*/NULL) != OK, + "%s: Failed to validate metadata structure %p", + __FUNCTION__, buffer); } void CameraMetadata::acquire(CameraMetadata &other) { @@ -289,6 +295,15 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data, __FUNCTION__, get_camera_metadata_section_name(tag), get_camera_metadata_tag_name(tag), tag, strerror(-res), res); } + + IF_ALOGV() { + ALOGE_IF(validate_camera_metadata_structure(mBuffer, /*size*/NULL) != + OK, + + "%s: Failed to validate metadata structure after update %p", + __FUNCTION__, mBuffer); + } + return res; } -- cgit v1.1