diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2016-08-17 23:31:47 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-08-17 23:31:47 +0000 |
commit | 000c33c8eb1f4c739d11347f3fd1923e9f381101 (patch) | |
tree | 950701cdc66230a2b1eb9d92c08bd01bd7e32a6f | |
parent | 61192805c0340aa678b9c6b6f0f68fc543f3abe3 (diff) | |
parent | bf7bc974e5be47579bc9b173af3f4b17a11095fd (diff) | |
download | android_system_media-000c33c8eb1f4c739d11347f3fd1923e9f381101.tar.gz android_system_media-000c33c8eb1f4c739d11347f3fd1923e9f381101.tar.bz2 android_system_media-000c33c8eb1f4c739d11347f3fd1923e9f381101.zip |
resolve merge conflicts of 28ce9cd to lmp-dev am: 53d55d7834 am: 009bc279a2 am: 6f21973d99 am: ab159ee14e am: e0cb79f1bc am: 3197a71063 am: ac2655b5cb
am: bf7bc974e5
Change-Id: I377dc993ede01f12a070ae01f4df0e90ac054ba4
-rw-r--r-- | camera/src/camera_metadata.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/camera/src/camera_metadata.c b/camera/src/camera_metadata.c index 92926872..e369c642 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; |