From 16b3e419e3538f504803eba15473a157fec8daa9 Mon Sep 17 00:00:00 2001 From: cpasjuste Date: Sat, 25 Oct 2025 09:58:35 +0200 Subject: [PATCH] fix invalid pointer return in ZeDMD_FormatLogMessage --- src/ZeDMD.cpp | 8 +++----- src/ZeDMD.h | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/ZeDMD.cpp b/src/ZeDMD.cpp index 7590c1f..69292af 100644 --- a/src/ZeDMD.cpp +++ b/src/ZeDMD.cpp @@ -899,12 +899,10 @@ ZEDMDAPI void ZeDMD_SetLogCallback(ZeDMD* pZeDMD, ZeDMD_LogCallback callback, co pZeDMD->SetLogCallback(callback, pUserData); } -ZEDMDAPI const char* ZeDMD_FormatLogMessage(const char* format, va_list args, const void* pUserData) +ZEDMDAPI void ZeDMD_FormatLogMessage(char *out, const size_t outSize, const char* format, va_list args, const void* pUserData) { - char buffer[1024]; - vsnprintf(buffer, sizeof(buffer), format, args); - - return buffer; + if (!out || outSize == 0) return; + vsnprintf(out, outSize, format, args); } ZEDMDAPI const char* ZeDMD_GetFirmwareVersion(ZeDMD* pZeDMD) { return pZeDMD->GetFirmwareVersion(); }; diff --git a/src/ZeDMD.h b/src/ZeDMD.h index c96c9f1..981800e 100644 --- a/src/ZeDMD.h +++ b/src/ZeDMD.h @@ -648,7 +648,7 @@ extern "C" extern ZEDMDAPI ZeDMD* ZeDMD_GetInstance(); extern ZEDMDAPI const char* ZeDMD_GetVersion(); extern ZEDMDAPI void ZeDMD_SetLogCallback(ZeDMD* pZeDMD, ZeDMD_LogCallback callback, const void* pUserData); - extern ZEDMDAPI const char* ZeDMD_FormatLogMessage(const char* format, va_list args, const void* pUserData); + extern ZEDMDAPI void ZeDMD_FormatLogMessage(char *out, size_t outSize, const char* format, va_list args, const void* pUserData); extern ZEDMDAPI const char* ZeDMD_GetFirmwareVersion(ZeDMD* pZeDMD); extern ZEDMDAPI uint16_t ZeDMD_GetId(ZeDMD* pZeDMD); extern ZEDMDAPI const char* ZeDMD_GetIdString(ZeDMD* pZeDMD);