]> granicus.if.org Git - check/commitdiff
Initialize buffer to ensure it is empty
authorMikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
Mon, 19 Aug 2019 17:11:04 +0000 (19:11 +0200)
committerMikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
Wed, 28 Aug 2019 11:03:25 +0000 (13:03 +0200)
snprintf.c:918:31: warning: The left operand of '!=' is a garbage value
        for (strln = 0; value[strln] != '\0' &&
                        ~~~~~~~~~~~~ ^

Move "#include <string.h>" from testing related code to main code
because memset(3) depends on <string.h>.

Signed-off-by: Mikko Johannes Koivunalho <mikko.koivunalho@iki.fi>
lib/snprintf.c

index 9beabbd28f4fa5b3bd4ca950c79fc581c0a57aca..09fc02178f4e118824a9950dad8d3b70203f1475 100644 (file)
 
 #if TEST_SNPRINTF
 #include <math.h>      /* For pow(3), NAN, and INFINITY. */
-#include <string.h>    /* For strcmp(3). */
 #if defined(__NetBSD__) || \
     defined(__FreeBSD__) || \
     defined(__OpenBSD__) || \
 
 #if !HAVE_SNPRINTF || !HAVE_VSNPRINTF
 #include <stdio.h>     /* For NULL, size_t, vsnprintf(3), and vasprintf(3). */
+#include <string.h>    /* For strcmp(3) and memset(3). */
 #ifdef VA_START
 #undef VA_START
 #endif /* defined(VA_START) */
@@ -1076,6 +1076,10 @@ fmtflt(char *str, size_t *len, size_t size, LDOUBLE fvalue, int width,
        struct lconv *lc = localeconv();
 #endif /* HAVE_LOCALECONV && HAVE_LCONV_DECIMAL_POINT */
 
+       /* Initialize with memset because `var[n]={0}` is not supported by C90. */
+       memset(iconvert, '\0', MAX_CONVERT_LENGTH);
+       memset(fconvert, '\0', MAX_CONVERT_LENGTH);
+
        /*
         * AIX' man page says the default is 0, but C99 and at least Solaris'
         * and NetBSD's man pages say the default is 6, and sprintf(3) on AIX