From 45cd4b6d5f3db4ac26219ddde951fc09589e74a0 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 10 Nov 2023 12:16:02 +0100 Subject: [PATCH] printf_parse: fix off-by-two In gnulib's 480a59ba60 (*printf-posix: ISO C 23: Support size specifiers 'wN' and 'wfN'., 2023-03-24), a major refactoring hides a bug in the conversion of the code handling Windows' `%I64*` family of `printf()` formats: before the refactoring, the `64` part was skipped (as desired), but afterwards that part is not skipped and therefore the `6` is mistaken for a conversion character. Which is invalid, of course, causing the code to error out. Fix this by skipping the `64` part again. Signed-off-by: Johannes Schindelin --- gettext-runtime/intl/gnulib-lib/printf-parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gettext-runtime/intl/gnulib-lib/printf-parse.c b/gettext-runtime/intl/gnulib-lib/printf-parse.c index d3f2c3cb5d..6741ee5ff4 100644 --- a/gettext-runtime/intl/gnulib-lib/printf-parse.c +++ b/gettext-runtime/intl/gnulib-lib/printf-parse.c @@ -555,7 +555,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) unsigned_type = TYPE_ULONGINT; pointer_type = TYPE_COUNT_LONGINT_POINTER; } - cp++; + cp += 3; } #endif -- 2.43.0.rc1.windows.1