This is an automated email from the ASF dual-hosted git repository.

janc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit 52ca2a4357a20aeb8543cd8febd04eab1cf0da14
Author: Michal Gorecki <[email protected]>
AuthorDate: Tue Feb 20 10:02:58 2024 +0100

    libc/baselibc: Fix size overflow compiler error
    
    On some compilers (for example 64-bit gcc 9.4.0) passing
    SIZE_MAX/2 to vsnprintf as buffer size was causing an compilation error.
    INT_MAX/2 should also be enough for buffer size and now it compiles
    without problems.
    This also removes force inclusion of "main" symbol.
---
 libc/baselibc/pkg.yml        | 1 -
 libc/baselibc/src/sprintf.c  | 3 ++-
 libc/baselibc/src/vsprintf.c | 3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/libc/baselibc/pkg.yml b/libc/baselibc/pkg.yml
index ee7ff016b..b751946e8 100644
--- a/libc/baselibc/pkg.yml
+++ b/libc/baselibc/pkg.yml
@@ -36,4 +36,3 @@ pkg.cflags:
 
 pkg.lflags:
     - -specs=nosys.specs:
-    - -umain
diff --git a/libc/baselibc/src/sprintf.c b/libc/baselibc/src/sprintf.c
index 9da6ae743..32e6b4c41 100644
--- a/libc/baselibc/src/sprintf.c
+++ b/libc/baselibc/src/sprintf.c
@@ -4,6 +4,7 @@
 
 #include <stdio.h>
 #include <stdint.h>
+#include <limits.h>
 
 int sprintf(char *buffer, const char *format, ...)
 {
@@ -11,7 +12,7 @@ int sprintf(char *buffer, const char *format, ...)
        int rv;
 
        va_start(ap, format);
-       rv = vsnprintf(buffer, SIZE_MAX/2, format, ap);
+       rv = vsnprintf(buffer, INT_MAX/2, format, ap);
        va_end(ap);
 
        return rv;
diff --git a/libc/baselibc/src/vsprintf.c b/libc/baselibc/src/vsprintf.c
index c88201e76..3d107d3a4 100644
--- a/libc/baselibc/src/vsprintf.c
+++ b/libc/baselibc/src/vsprintf.c
@@ -4,8 +4,9 @@
 
 #include <stdio.h>
 #include <stdint.h>
+#include <limits.h>
 
 int vsprintf(char *buffer, const char *format, va_list ap)
 {
-       return vsnprintf(buffer, SIZE_MAX/2, format, ap);
+       return vsnprintf(buffer, INT_MAX/2, format, ap);
 }

Reply via email to