|
Message-ID: <CAMOBWkOsdWXqva-5LVYo76jcBEr8TkE6V-O69XRw0ruhn5Fd_g@mail.gmail.com>
Date: Mon, 24 May 2021 00:39:35 -0400
From: Konstantin Isakov <dragonroot@...il.com>
To: musl@...ts.openwall.com
Subject: [BUG] swprintf() doesn't handle Unicode characters correctly
Hi,
The following program:
===================================
#include <stdio.h>
#include <wchar.h>
int main()
{
wchar_t buf[ 32 ];
swprintf( buf, sizeof( buf ) / sizeof( *buf ), L"ab\u00E1c" );
for ( wchar_t * p = buf; *p; ++p )
printf( "%u\n", ( unsigned ) *p );
return 0;
}
===================================
With musl 1.2.2 produces the following output:
97
98
The expected output is:
97
98
225
99
With musl, only the first two characters ('a' and 'b') are processed, and
the string ends on a Unicode character (U+00E1, which is an 'a' with acute
accent), instead of outputting it and the last character, 'c'.
Please CC me when replying. Thanks!
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.