summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2016-08-17 23:28:47 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-08-17 23:28:47 +0000
commitbf7bc974e5be47579bc9b173af3f4b17a11095fd (patch)
tree04438e0cdd8a7de5a87db7959bb74d028e1e4930
parent0efacfef740a1bfc4a6038deef120c279ab0d8c8 (diff)
parentac2655b5cb06c63b56a676e4cf506addcbca31f6 (diff)
downloadandroid_system_media-bf7bc974e5be47579bc9b173af3f4b17a11095fd.tar.gz
android_system_media-bf7bc974e5be47579bc9b173af3f4b17a11095fd.tar.bz2
android_system_media-bf7bc974e5be47579bc9b173af3f4b17a11095fd.zip
resolve merge conflicts of 28ce9cd to lmp-dev am: 53d55d7834 am: 009bc279a2 am: 6f21973d99 am: ab159ee14e am: e0cb79f1bc am: 3197a71063
am: ac2655b5cb Change-Id: I51396e87a67e735379249335e0c229f892db6412
-rw-r--r--camera/src/camera_metadata.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/camera/src/camera_metadata.c b/camera/src/camera_metadata.c
index 9bb58cb7..0010f31f 100644
--- a/camera/src/camera_metadata.c
+++ b/camera/src/camera_metadata.c
@@ -390,6 +390,14 @@ int validate_camera_metadata_structure(const camera_metadata_t *metadata,
return ERROR;
}
+ if (metadata->data_count > metadata->data_capacity) {
+ ALOGE("%s: Data count (%" PRIu32 ") should be <= data capacity "
+ "(%" PRIu32 ")",
+ __FUNCTION__, metadata->data_count, metadata->data_capacity);
+ android_errorWriteLog(SN_EVENT_LOG_ID, "30591838");
+ return ERROR;
+ }
+
const metadata_uptrdiff_t entries_end =
metadata->entries_start + metadata->entry_capacity;
if (entries_end < metadata->entries_start || // overflow check
@@ -496,6 +504,10 @@ int append_camera_metadata(camera_metadata_t *dst,
const camera_metadata_t *src) {
if (dst == NULL || src == NULL ) return ERROR;
+ // Check for overflow
+ if (src->entry_count + dst->entry_count < src->entry_count) return ERROR;
+ if (src->data_count + dst->data_count < src->data_count) return ERROR;
+ // Check for space
if (dst->entry_capacity < src->entry_count + dst->entry_count) return ERROR;
if (dst->data_capacity < src->data_count + dst->data_count) return ERROR;