diff options
author | Igor Murashkin <iam@google.com> | 2013-04-30 18:18:06 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2013-05-02 18:03:13 -0700 |
commit | e2d1e3d0436aec645739c65e6d3131dd814f40a1 (patch) | |
tree | 2c5468dc1abbd5455589aee54b41e0273e16368b /camera/CameraMetadata.cpp | |
parent | d8c7ad1cbc2e6830560a085380a5828cc3d41010 (diff) | |
download | frameworks_av-e2d1e3d0436aec645739c65e6d3131dd814f40a1.zip frameworks_av-e2d1e3d0436aec645739c65e6d3131dd814f40a1.tar.gz frameworks_av-e2d1e3d0436aec645739c65e6d3131dd814f40a1.tar.bz2 |
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
Diffstat (limited to 'camera/CameraMetadata.cpp')
-rw-r--r-- | camera/CameraMetadata.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
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 <utils/Log.h> #include <utils/Errors.h> @@ -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; } |