aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2024-06-27 13:42:37 +0200
committerStefan Liebler <stli@linux.ibm.com>2024-06-27 16:49:26 +0200
commitc0f21e073d45670cb54811b07fce8e612a91f107 (patch)
tree9cc5dad2a3c9f159ee976eaa1575bb6e535e3186
parent21738846a19eb4a36981efd37d9ee7cb6d687494 (diff)
downloadglibc-c0f21e073d45670cb54811b07fce8e612a91f107.zip
glibc-c0f21e073d45670cb54811b07fce8e612a91f107.tar.gz
glibc-c0f21e073d45670cb54811b07fce8e612a91f107.tar.bz2
tests-mbwc: Silence gcc 14 -Werror=format-overflow=
With gcc 14, I get this warning/werror when building the localedata tests: tests-mbwc/tsp_common.c: In function ‘result.constprop.isra’: tests-mbwc/tsp_common.c:55:43: error: ‘%s’ directive writing up to 92 bytes into a region of size between 0 and 114 [-Werror=format-overflow=] 55 | sprintf (result_rec, "%s:%s:%d:%d:%d:%c:%s\n", func, loc, rec_no, seq_no, | ^~ In file included from ../include/bits/stdio2.h:1, from ../libio/stdio.h:980, from ../include/stdio.h:14, from tests-mbwc/tsp_common.c:10: In function ‘sprintf’, inlined from ‘result.constprop.isra’ at tests-mbwc/tsp_common.c:55:3: ../libio/bits/stdio2.h:30:10: note: ‘__builtin___sprintf_chk’ output between 20 and 234 bytes into a destination of size 132 30 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors This patch now gets rid of using sprintf and the result_rec buffer and just prints to fp directly.
-rw-r--r--localedata/tests-mbwc/tsp_common.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/localedata/tests-mbwc/tsp_common.c b/localedata/tests-mbwc/tsp_common.c
index cd88274..0c638ef 100644
--- a/localedata/tests-mbwc/tsp_common.c
+++ b/localedata/tests-mbwc/tsp_common.c
@@ -35,30 +35,16 @@ main (int argc, char *argv[])
return (ret != 0);
}
-#define MAX_RESULT_REC 132
-char result_rec[MAX_RESULT_REC];
-
-
int
result (FILE * fp, char res, const char *func, const char *loc, int rec_no,
int seq_no, int case_no, const char *msg)
{
- if (fp == NULL
- || strlen (func) + strlen (loc) + strlen (msg) + 32 > MAX_RESULT_REC)
- {
- fprintf (stderr,
- "Warning: result(): can't write the result: %s:%s:%d:%d:%s\n",
- func, loc, rec_no, case_no, msg);
- return 0;
- }
+ if (fp == NULL)
+ fp = stderr;
- sprintf (result_rec, "%s:%s:%d:%d:%d:%c:%s\n", func, loc, rec_no, seq_no,
- case_no, res, msg);
-
- if (fputs (result_rec, fp) == EOF)
- {
- return 0;
- }
+ if (fprintf (fp, "%s:%s:%d:%d:%d:%c:%s\n", func, loc, rec_no, seq_no,
+ case_no, res, msg) == EOF)
+ return 0;
return 1;
}