From a8bc4cbcfe460d2d2a76759a91ff56eb63215c26 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 27 Feb 2026 16:10:59 +0100 Subject: [PATCH] build: assume `snprintf()` in `mprintf`, drop feature check - it was already required for `curl_*printf()` float/double support. - some curl tests always fail without it. - it was already assumed to be present to build test servers. Source code did not check for `HAVE_SNPRINTF` detection variable. - it was already required to build examples. Windows builds stopped using this detection and the function via earlier commits. Follow-up to 64f28b8f8859fc80816f7db3b5c4b6f2fd84bd27 #20765 Follow-up to 935b1bd4544a23a91d68ffb9f86983e92747e9a5 #9570 #9569 Closes #20763 --- CMake/unix-cache.cmake | 1 - CMakeLists.txt | 1 - configure.ac | 1 - lib/curl_config-cmake.h.in | 3 --- lib/mprintf.c | 5 +---- 5 files changed, 1 insertion(+), 10 deletions(-) diff --git a/CMake/unix-cache.cmake b/CMake/unix-cache.cmake index 5e26d12096..51bfa17d29 100644 --- a/CMake/unix-cache.cmake +++ b/CMake/unix-cache.cmake @@ -228,7 +228,6 @@ set(HAVE_SIGACTION 1) set(HAVE_SIGINTERRUPT 1) set(HAVE_SIGNAL 1) set(HAVE_SIGSETJMP 1) -set(HAVE_SNPRINTF 1) set(HAVE_SOCKADDR_IN6_SIN6_ADDR 1) set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1) set(HAVE_SOCKET 1) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8831937b8a..1b1f8231d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1636,7 +1636,6 @@ if(NOT WIN32) check_function_exists("if_nametoindex" HAVE_IF_NAMETOINDEX) # net/if.h check_function_exists("realpath" HAVE_REALPATH) check_function_exists("sched_yield" HAVE_SCHED_YIELD) - check_function_exists("snprintf" HAVE_SNPRINTF) # to match detection method in ./configure check_symbol_exists("strcasecmp" "string.h" HAVE_STRCASECMP) check_symbol_exists("stricmp" "string.h" HAVE_STRICMP) check_symbol_exists("strcmpi" "string.h" HAVE_STRCMPI) diff --git a/configure.ac b/configure.ac index b5ec678c76..46df82ed65 100644 --- a/configure.ac +++ b/configure.ac @@ -4198,7 +4198,6 @@ if test "$curl_cv_native_windows" != "yes"; then if_nametoindex \ realpath \ sched_yield \ - snprintf \ ]) CURL_CHECK_FUNC_INET_NTOP CURL_CHECK_FUNC_INET_PTON diff --git a/lib/curl_config-cmake.h.in b/lib/curl_config-cmake.h.in index 1dcab9d897..fec13419b7 100644 --- a/lib/curl_config-cmake.h.in +++ b/lib/curl_config-cmake.h.in @@ -502,9 +502,6 @@ /* Define to 1 if you have the sigsetjmp function or macro. */ #cmakedefine HAVE_SIGSETJMP 1 -/* Define to 1 if you have the `snprintf' function. */ -#cmakedefine HAVE_SNPRINTF 1 - /* Define to 1 if struct sockaddr_in6 has the sin6_scope_id member */ #cmakedefine HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1 diff --git a/lib/mprintf.c b/lib/mprintf.c index df9c0f4752..8a6a26c0e9 100644 --- a/lib/mprintf.c +++ b/lib/mprintf.c @@ -678,14 +678,11 @@ static bool out_double(void *userp, #endif #ifdef _WIN32 curlx_win32_snprintf(work, BUFFSIZE, fmt, dnum); -#elif defined(HAVE_SNPRINTF) +#else /* !checksrc! disable BANNEDFUNC 1 */ /* !checksrc! disable LONGLINE */ /* NOLINTNEXTLINE(clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling) */ snprintf(work, BUFFSIZE, fmt, dnum); -#else - /* float and double outputs do not work without snprintf support */ - work[0] = 0; #endif #ifdef CURL_HAVE_DIAG #pragma GCC diagnostic pop