From 815d79769560edf3212ea755a24011b0bd41cad3 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 22 Mar 2023 06:13:18 +0100 Subject: [PATCH] unistdio/u*-vasnprintf: Fix conversion of %Id directive result. * lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's result is entirely ASCII if the directive contain the glibc 'I' flag. --- ChangeLog | 6 ++++++ lib/vasnprintf.c | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0269b3c9ff..d57580ae2a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2023-03-21 Bruno Haible + + unistdio/u*-vasnprintf: Fix conversion of %Id directive result. + * lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's result is + entirely ASCII if the directive contain the glibc 'I' flag. + 2023-03-21 Ar Rakin (tiny change) gnupload: correct SFTP connection URL diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index ad61dbba92..957da484c2 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -5448,11 +5448,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, #if !DCHAR_IS_TCHAR /* Convert from TCHAR_T[] to DCHAR_T[]. */ - if (dp->conversion == 'c' || dp->conversion == 's') + if (dp->conversion == 'c' || dp->conversion == 's' +# if __GLIBC__ >= 2 && !defined __UCLIBC__ + || (flags & FLAG_LOCALIZED) +# endif + ) { - /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING - TYPE_WIDE_STRING. - The result string is not certainly ASCII. */ + /* The result string is not guaranteed to be ASCII. */ const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; -- 2.39.5