From fe87949ffaf1d486c045a9cfb9fbb378f4710851 Mon Sep 17 00:00:00 2001 From: rightblank Date: Tue, 20 Aug 2024 02:07:12 +0800 Subject: [PATCH] config_map: fix configuration type cast issue found on s390x (#8904) Signed-off-by: YingJie Fu --- src/flb_config_map.c | 8 ++++---- tests/internal/config_map.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/flb_config_map.c b/src/flb_config_map.c index 4db55411cb0..f09a689a0bb 100644 --- a/src/flb_config_map.c +++ b/src/flb_config_map.c @@ -583,7 +583,7 @@ int flb_config_map_set(struct mk_list *properties, struct mk_list *map, void *co int ret; int len; char *base; - char *m_bool; + int *m_bool; int *m_i_num; double *m_d_num; size_t *m_s_num; @@ -651,10 +651,10 @@ int flb_config_map_set(struct mk_list *properties, struct mk_list *map, void *co } else if (m->type == FLB_CONFIG_MAP_TIME) { m_i_num = (int *) (base + m->offset); - *m_i_num = m->value.val.s_num; + *m_i_num = m->value.val.i_num; } else if (m->type == FLB_CONFIG_MAP_BOOL) { - m_bool = (char *) (base + m->offset); + m_bool = (int *) (base + m->offset); *m_bool = m->value.val.boolean; } else if (m->type >= FLB_CONFIG_MAP_CLIST || @@ -779,7 +779,7 @@ int flb_config_map_set(struct mk_list *properties, struct mk_list *map, void *co *m_d_num = atof(kv->val); } else if (m->type == FLB_CONFIG_MAP_BOOL) { - m_bool = (char *) (base + m->offset); + m_bool = (int *) (base + m->offset); ret = flb_utils_bool(kv->val); if (ret == -1) { flb_error("[config map] invalid value for boolean property '%s=%s'", diff --git a/tests/internal/config_map.c b/tests/internal/config_map.c index 687e2313ac6..941b815e902 100644 --- a/tests/internal/config_map.c +++ b/tests/internal/config_map.c @@ -13,7 +13,7 @@ struct context { /* Single values */ int num_int; size_t size; - time_t time; + int time; int boolean; double num_double; flb_sds_t string;