From 47d63d77f674884c913a4ae0015f67cdbbed48c6 Mon Sep 17 00:00:00 2001 From: l5y <220195275+l5yth@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:02:20 +0200 Subject: [PATCH 1/2] Fix Print::printf return value on truncation and error --- cores/portduino/PortduinoPrint.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cores/portduino/PortduinoPrint.cpp b/cores/portduino/PortduinoPrint.cpp index b6de06a..72d3157 100644 --- a/cores/portduino/PortduinoPrint.cpp +++ b/cores/portduino/PortduinoPrint.cpp @@ -10,8 +10,10 @@ size_t Print::printf(const char *format, ...) { // Linux that is fine, TBD on MyNewt va_list args; va_start(args, format); - size_t n = vsnprintf(buf, sizeof(buf), format, args); - write(buf); + int n = vsnprintf(buf, sizeof(buf), format, args); va_end(args); - return n; + if (n <= 0) return 0; + // vsnprintf returns the would-be length; clamp to what actually fit. + size_t len = (n < (int)sizeof(buf)) ? (size_t)n : sizeof(buf) - 1; + return write((const uint8_t *)buf, len); } \ No newline at end of file From 6d5b5166fe15df29c3101d08fc2388d8957fdff1 Mon Sep 17 00:00:00 2001 From: l5y <220195275+l5yth@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:15:56 +0200 Subject: [PATCH 2/2] Fix Print::printf return value on truncation and error --- cores/portduino/PortduinoPrint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/portduino/PortduinoPrint.cpp b/cores/portduino/PortduinoPrint.cpp index 72d3157..1f74388 100644 --- a/cores/portduino/PortduinoPrint.cpp +++ b/cores/portduino/PortduinoPrint.cpp @@ -16,4 +16,4 @@ size_t Print::printf(const char *format, ...) { // vsnprintf returns the would-be length; clamp to what actually fit. size_t len = (n < (int)sizeof(buf)) ? (size_t)n : sizeof(buf) - 1; return write((const uint8_t *)buf, len); -} \ No newline at end of file +}