[PATCH] _bfd_real_fopen should not use ccs parameter on Windows

Yvan Roux yvan.roux@foss.st.com
Tue May 17 14:33:40 GMT 2022


Ping

On Tue, May 03, 2022 at 02:39:59PM +0200, Yvan Roux via Binutils wrote:
> Hi,
> 
> As it was discussed in https://sourceware.org/bugzilla/show_bug.cgi?id=25713
> according to MSDN, the ccs=UNICODE should only be used when the encoding of the
> file stream is supposed to be UTF-8 or UTF-16LE, and is not related to the
> encoding of the file name.
> 
> Regression tested without any issue.
> 
> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
> Signed-off-by: Yvan ROUX <yvan.roux@foss.st.com>
> ---
>  bfd/bfdio.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/bfd/bfdio.c b/bfd/bfdio.c
> index 5c9a6555894..dc8d3916509 100644
> --- a/bfd/bfdio.c
> +++ b/bfd/bfdio.c
> @@ -119,7 +119,6 @@ _bfd_real_fopen (const char *filename, const char *modes)
>    /* PR 25713: Handle extra long path names possibly containing '..' and '.'.  */
>     wchar_t **     lpFilePart = {NULL};
>     const wchar_t  prefix[] = L"\\\\?\\";
> -   const wchar_t  ccs[] = L", ccs=UNICODE";
>     const size_t   partPathLen = strlen (filename) + 1;
>  
>     /* Converting the partial path from ascii to unicode.
> @@ -151,10 +150,9 @@ _bfd_real_fopen (const char *filename, const char *modes)
>     free (partPath);
>  
>     /* It is non-standard for modes to exceed 16 characters.  */
> -   wchar_t    modesW[16 + sizeof(ccs)];
> +   wchar_t    modesW[16];
>  
>     MultiByteToWideChar (CP_UTF8, 0, modes, -1, modesW, sizeof(modesW));
> -   wcscat (modesW, ccs);
>  
>     FILE *     file = _wfopen (fullPath, modesW);
>     free (fullPath);
> -- 
> 2.17.1
> 
> 
> 

-- 
Y.


More information about the Binutils mailing list