Skip to content

Commit 3746b4c

Browse files
authored
lib: cmetrics: upgrade to v0.6.5 (fluent#8176)
Signed-off-by: Eduardo Silva <eduardo@calyptia.com>
1 parent 9b9c800 commit 3746b4c

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

lib/cmetrics/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
66
# CMetrics Version
77
set(CMT_VERSION_MAJOR 0)
88
set(CMT_VERSION_MINOR 6)
9-
set(CMT_VERSION_PATCH 4)
9+
set(CMT_VERSION_PATCH 5)
1010
set(CMT_VERSION_STR "${CMT_VERSION_MAJOR}.${CMT_VERSION_MINOR}.${CMT_VERSION_PATCH}")
1111

1212
# Include helpers

lib/cmetrics/include/cmetrics/cmt_variant_utils.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222

2323
#include <mpack/mpack.h>
2424

25+
#define CFL_VARIANT_UTILS_MAXIMUM_FIXED_ARRAY_SIZE 100
26+
#define CFL_VARIANT_UTILS_INITIAL_ARRAY_SIZE 100
27+
#define CFL_VARIANT_UTILS_SERIALIZED_ARRAY_SIZE_LIMIT 100000
28+
2529
/* These are the only functions meant for general use,
2630
* the reason why the kvlist packing and unpacking
2731
* functions are exposed is the internal and external
@@ -226,12 +230,25 @@ static inline int unpack_cfl_array(mpack_reader_t *reader,
226230

227231
entry_count = mpack_tag_array_count(&tag);
228232

229-
internal_array = cfl_array_create(entry_count);
233+
if (entry_count >= CFL_VARIANT_UTILS_SERIALIZED_ARRAY_SIZE_LIMIT) {
234+
return -2;
235+
}
236+
237+
if (entry_count >= CFL_VARIANT_UTILS_MAXIMUM_FIXED_ARRAY_SIZE) {
238+
internal_array = cfl_array_create(CFL_VARIANT_UTILS_INITIAL_ARRAY_SIZE);
239+
}
240+
else {
241+
internal_array = cfl_array_create(entry_count);
242+
}
230243

231244
if (internal_array == NULL) {
232245
return -3;
233246
}
234247

248+
if (entry_count >= CFL_VARIANT_UTILS_MAXIMUM_FIXED_ARRAY_SIZE) {
249+
cfl_array_resizable(internal_array, CFL_TRUE);
250+
}
251+
235252
for (index = 0 ; index < entry_count ; index++) {
236253
result = unpack_cfl_variant(reader, &entry_value);
237254

@@ -595,7 +612,7 @@ static inline int unpack_cfl_variant(mpack_reader_t *reader,
595612
if (value_type == mpack_type_str) {
596613
result = unpack_cfl_variant_string(reader, value);
597614
}
598-
else if (value_type == mpack_type_str) {
615+
else if (value_type == mpack_type_bool) {
599616
result = unpack_cfl_variant_boolean(reader, value);
600617
}
601618
else if (value_type == mpack_type_int) {

0 commit comments

Comments
 (0)