summaryrefslogtreecommitdiffstats
path: root/camera/CameraMetadata.cpp
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2013-04-30 18:18:06 -0700
committerIgor Murashkin <iam@google.com>2013-05-02 18:03:13 -0700
commite2d1e3d0436aec645739c65e6d3131dd814f40a1 (patch)
tree2c5468dc1abbd5455589aee54b41e0273e16368b /camera/CameraMetadata.cpp
parentd8c7ad1cbc2e6830560a085380a5828cc3d41010 (diff)
downloadframeworks_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.cpp15
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;
}