diff --git a/camera/metadata/BUILD.gn b/camera/metadata/BUILD.gn index 312ab70ff8c29149d93a614bff0a8457005db260..10fa979efec33e89d6e88c7dcffc4e744ddca3ab 100644 --- a/camera/metadata/BUILD.gn +++ b/camera/metadata/BUILD.gn @@ -28,7 +28,7 @@ ohos_shared_library("metadata") { ] cflags_cc = cflags cflags_cc += [ "-fstack-protector-strong" ] - ldflags = [ "-s" ] + if (drivers_interface_camera_feature_coverage) { cflags += [ "--coverage" ] ldflags += [ "--coverage" ] diff --git a/camera/metadata/include/camera_metadata_info.h b/camera/metadata/include/camera_metadata_info.h index 042d020e24274597eb1a7671f71c4f4876493f47..82644d477c3b4345ce286c76fbf30a0128999c91 100644 --- a/camera/metadata/include/camera_metadata_info.h +++ b/camera/metadata/include/camera_metadata_info.h @@ -25,6 +25,7 @@ static constexpr uint32_t MAX_SUPPORTED_TAGS = 1000; static constexpr uint32_t MAX_SUPPORTED_ITEMS = (12000 * 2 * 2); static constexpr uint32_t MAX_ITEM_CAPACITY = (1000 * 10); static constexpr uint32_t MAX_DATA_CAPACITY = (1000 * 10 * 10 * 10); +static constexpr uint32_t MIN_VEC_SIZE = 12; #define METADATA_PACKET_ALIGNMENT \ MaxAlignment(MaxAlignment(DATA_ALIGNMENT, METADATA_ALIGNMENT), ITEM_ALIGNMENT) diff --git a/camera/metadata/src/metadata_utils.cpp b/camera/metadata/src/metadata_utils.cpp index 40cb21571a56703971c6da5aafea55f1f4db5a13..7bbfb8fb0f085c02157efebf4312088d68047abc 100644 --- a/camera/metadata/src/metadata_utils.cpp +++ b/camera/metadata/src/metadata_utils.cpp @@ -265,6 +265,10 @@ void MetadataUtils::ConvertVecToMetadata(const std::vector& cameraAbili uint32_t itemCapacity = 0; uint32_t dataCapacity = 0; + if (cameraAbility.size() < MIN_VEC_SIZE) { + METADATA_ERR_LOG("ConvertVecToMetadata cameraAbility size:%{public}d", static_cast(cameraAbility.size())); + return; + } ReadData(tagCount, index, cameraAbility); if (tagCount > MAX_SUPPORTED_TAGS) { METADATA_ERR_LOG("ConvertVecToMetadata tagCount out of range:%{public}d", tagCount); diff --git a/camera/sequenceable/buffer_handle/BUILD.gn b/camera/sequenceable/buffer_handle/BUILD.gn index 25e7343f0f44ea7e7127853c7a94f2b1f15aeb16..eb3d1eb024d2bc405d575b0ce17de53385f99474 100644 --- a/camera/sequenceable/buffer_handle/BUILD.gn +++ b/camera/sequenceable/buffer_handle/BUILD.gn @@ -35,7 +35,7 @@ ohos_shared_library("libbuffer_handle_sequenceable_1.0") { "ipc:ipc_single", ] cflags_cc = [ "-fstack-protector-strong" ] - ldflags = [ "-s" ] + if (drivers_interface_camera_feature_coverage) { cflags_cc += [ "--coverage" ] ldflags += [ "--coverage" ] diff --git a/camera/sequenceable/buffer_producer/BUILD.gn b/camera/sequenceable/buffer_producer/BUILD.gn index b4559322b93e059a37a2939ef7bb83a6952058e7..3f5d110dc4b3eb641629d1dd7f4fc3a3bd835eb8 100644 --- a/camera/sequenceable/buffer_producer/BUILD.gn +++ b/camera/sequenceable/buffer_producer/BUILD.gn @@ -36,7 +36,7 @@ ohos_shared_library("libbuffer_producer_sequenceable_1.0") { "ipc:ipc_single", ] cflags_cc = [ "-fstack-protector-strong" ] - ldflags = [ "-s" ] + if (drivers_interface_camera_feature_coverage) { cflags_cc += [ "--coverage" ] ldflags += [ "--coverage" ] diff --git a/camera/sequenceable/map_data/BUILD.gn b/camera/sequenceable/map_data/BUILD.gn index a1e920de3a629f34a70eebbb168a8eae7fab26d1..03245741183bae9bb4cfc62155338906c49097be 100644 --- a/camera/sequenceable/map_data/BUILD.gn +++ b/camera/sequenceable/map_data/BUILD.gn @@ -35,7 +35,7 @@ ohos_shared_library("libmap_data_sequenceable_1.0") { "ipc:ipc_single", ] cflags_cc = [ "-fstack-protector-strong" ] - ldflags = [ "-s" ] + if (drivers_interface_camera_feature_coverage) { cflags_cc += [ "--coverage" ] ldflags += [ "--coverage" ]