diff --git a/include/zbxcommon.h b/include/zbxcommon.h index b2efb120138..245d8b0c8fc 100644 --- a/include/zbxcommon.h +++ b/include/zbxcommon.h @@ -600,7 +600,7 @@ int zbx_hpux_vsnprintf_is_c99(void); /* used by log */ size_t zbx_vsnprintf(char *str, size_t count, const char *fmt, va_list args); -int zbx_vsnprintf_check_len(const char *fmt, va_list args); +size_t zbx_vsnprintf_check_len(const char *fmt, va_list args); /* used by log */ char *zbx_dsprintf(char *dest, const char *f, ...) __zbx_attr_format_printf(2, 3); diff --git a/src/go/pkg/zbxlib/log.go b/src/go/pkg/zbxlib/log.go index d6c26d98d0e..dc4fe423ddd 100644 --- a/src/go/pkg/zbxlib/log.go +++ b/src/go/pkg/zbxlib/log.go @@ -38,8 +38,7 @@ void zbx_log_go_impl(int level, const char *fmt, va_list args) va_copy(tmp, args); - // zbx_vsnprintf_check_len() cannot return negative result - size = (size_t)zbx_vsnprintf_check_len(fmt, tmp) + 2; + size = zbx_vsnprintf_check_len(fmt, tmp) + 2; va_end(tmp); diff --git a/src/libs/zbxcommon/common_str.c b/src/libs/zbxcommon/common_str.c index 71cb90c4495..298c56b2ac1 100644 --- a/src/libs/zbxcommon/common_str.c +++ b/src/libs/zbxcommon/common_str.c @@ -51,7 +51,7 @@ size_t zbx_vsnprintf(char *str, size_t count, const char *fmt, va_list args) return (size_t)written_len; } -int zbx_vsnprintf_check_len(const char *fmt, va_list args) +size_t zbx_vsnprintf_check_len(const char *fmt, va_list args) { int rv; @@ -61,7 +61,7 @@ int zbx_vsnprintf_check_len(const char *fmt, va_list args) exit(EXIT_FAILURE); } - return rv; + return (size_t)rv; } /****************************************************************************** @@ -296,9 +296,8 @@ retry: { va_start(args, fmt); - /* zbx_vsnprintf_check_len() cannot return negative result. */ /* '\0' + one byte to prevent operation retry. */ - *alloc_len = (size_t)zbx_vsnprintf_check_len(fmt, args) + 2; + *alloc_len = zbx_vsnprintf_check_len(fmt, args) + 2; va_end(args); *offset = 0; diff --git a/src/libs/zbxlog/log.c b/src/libs/zbxlog/log.c index 2651e499f09..3c1e54c961f 100644 --- a/src/libs/zbxlog/log.c +++ b/src/libs/zbxlog/log.c @@ -703,8 +703,7 @@ void zbx_strlog_alloc(int level, char **out, size_t *out_alloc, size_t *out_offs #endif va_start(args, format); - /* zbx_vsnprintf_check_len() cannot return negative result */ - len = (size_t)zbx_vsnprintf_check_len(format, args) + 2; + len = zbx_vsnprintf_check_len(format, args) + 2; va_end(args); diff --git a/src/zabbix_server/ha/ha_manager.c b/src/zabbix_server/ha/ha_manager.c index 69fe5506055..0f80fdb049e 100644 --- a/src/zabbix_server/ha/ha_manager.c +++ b/src/zabbix_server/ha/ha_manager.c @@ -254,8 +254,7 @@ static void ha_set_error(zbx_ha_info_t *info, const char *fmt, ...) va_start(args, fmt); - /* zbx_vsnprintf_check_len() cannot return negative result */ - len = (size_t)zbx_vsnprintf_check_len(fmt, args) + 1; + len = zbx_vsnprintf_check_len(fmt, args) + 1; va_end(args);