From 188fc93dd92887ca696cd60b8c4a6b1205f7059c Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Wed, 15 Apr 2020 11:55:30 +0200 Subject: [PATCH] Protect empty header value types --- core-writer/src/writer/MetadataBuffer.cpp | 24 +++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/core-writer/src/writer/MetadataBuffer.cpp b/core-writer/src/writer/MetadataBuffer.cpp index c494116..e7b91e0 100644 --- a/core-writer/src/writer/MetadataBuffer.cpp +++ b/core-writer/src/writer/MetadataBuffer.cpp @@ -12,19 +12,23 @@ MetadataBuffer::MetadataBuffer( n_slots_(n_slots), header_values_type_(header_values_type) { - for (const auto& header_type : header_values_type_) { - auto& name = header_type.first; - auto& header_data_type = header_type.second; + if (!header_values_type_.empty()) { + for (const auto &header_type : header_values_type_) { + auto &name = header_type.first; + auto &header_data_type = header_type.second; - size_t bytes_size_per_frame = - header_data_type.value_shape * header_data_type.value_bytes_size; - size_t buffer_size_bytes = n_slots_ * bytes_size_per_frame; + size_t bytes_size_per_frame = + header_data_type.value_shape * + header_data_type.value_bytes_size; + size_t buffer_size_bytes = n_slots_ * bytes_size_per_frame; - shared_ptr buffer( - new char[buffer_size_bytes](), std::default_delete()); + shared_ptr buffer( + new char[buffer_size_bytes](), + std::default_delete()); - metadata_buffer.insert({name, buffer}); - metadata_length_bytes.insert({name, bytes_size_per_frame}); + metadata_buffer.insert({name, buffer}); + metadata_length_bytes.insert({name, bytes_size_per_frame}); + } } }