From dae93fe9ef4efa711649c818d535001d9cb6c591 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Tue, 21 Oct 2025 14:15:59 +0200 Subject: [PATCH 1/3] Fix endless recursion on webui_malloc in debug mode. We're sure the length of the debug message of _webui_malloc < 256, so in that case we have enough room to print the debug message without allocating memory with _webui_malloc, which prevents an endless recursion to _webui_log. Signed-off-by: Hans Dijkema --- src/webui.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/webui.c b/src/webui.c index c37eb055f..561f16681 100644 --- a/src/webui.c +++ b/src/webui.c @@ -727,14 +727,16 @@ static void _webui_log(size_t level, const char *format, va_list args) { _webui.logger_func(WEBUI_LOGGER_LEVEL_ERROR, "Log formatting error", _webui.logger_user_data); return; } - char *buffer = _webui_malloc(needed_size + 1); + + char buf[256]; + char *buffer = (needed_size > 255) ? _webui_malloc(needed_size + 1) : buf; if (buffer == NULL) { _webui.logger_func(WEBUI_LOGGER_LEVEL_ERROR, "Memory allocation failed for log", _webui.logger_user_data); return; } vsnprintf(buffer, needed_size + 1, format, args); _webui.logger_func(level, buffer, _webui.logger_user_data); - _webui_free_mem((void*)buffer); + if (buffer != buf) _webui_free_mem((void*)buffer); } } From f51713403fadda9efb6c9774a5166b2adfd79f6a Mon Sep 17 00:00:00 2001 From: Showns <116365846+AlbertShown@users.noreply.github.com> Date: Tue, 21 Oct 2025 12:14:15 -0400 Subject: [PATCH 2/3] Fix typo (because of a merging conflict) --- src/webui.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webui.c b/src/webui.c index ecc958c72..5ce2324b3 100644 --- a/src/webui.c +++ b/src/webui.c @@ -739,7 +739,7 @@ static void _webui_log(size_t level, const char *format, va_list args) { return; } vsnprintf(buffer, needed_size + 1, format, args); - _webui.logger_func(level, buffer, _webui.logger_user_data); + _webui_log_data.logger_func(level, buffer, _webui.logger_user_data); if (buffer != buf) _webui_free_mem((void*)buffer); } } From 592199950b8fd7657a9ab53215400c3f006425a7 Mon Sep 17 00:00:00 2001 From: Showns <116365846+AlbertShown@users.noreply.github.com> Date: Tue, 21 Oct 2025 12:15:47 -0400 Subject: [PATCH 3/3] Fix typo (because of a merging conflict) --- src/webui.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webui.c b/src/webui.c index 5ce2324b3..0534ce2af 100644 --- a/src/webui.c +++ b/src/webui.c @@ -739,7 +739,7 @@ static void _webui_log(size_t level, const char *format, va_list args) { return; } vsnprintf(buffer, needed_size + 1, format, args); - _webui_log_data.logger_func(level, buffer, _webui.logger_user_data); + _webui_log_data.logger_func(level, buffer, _webui_log_data.logger_user_data); if (buffer != buf) _webui_free_mem((void*)buffer); } }