Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 01 Nov 2020 17:17:49 -0300
From: Érico Nogueira <ericonr@...root.org>
To: <musl@...ts.openwall.com>, <musl@...ts.openwall.com>
Subject: Re: swprintf possible bug

On Sun Nov 1, 2020 at 6:06 PM -03, Alexander Vitiuk wrote:
> Hello!
> It seems, wsprintf() / wprintf() are not working in musl as expected, if
> uses with cyrillic:
>
> C testcase:
> #include <wchar.h>
> int main() {
> wprintf(L"[hello]\n");
> wprintf(L"[Привет]\n");
> return 0;
> }
> on x86_64-linux-gnu prints:
> [hello]
> [Privet]
> and on x86_64-linux-musl prints: [hello]
> [
>
> There are other cases described:
> https://github.com/emscripten-core/emscripten/issues/11947

For what it's worth, if this is a bug, it would seem to be in how musl
decides when to print characters (not the formatting functions
themselves), since the below program doesn't print anything:

#include <wchar.h>
#include <stdio.h>

int main() {
  fputws(L"[Привет Василий]\n", stdout);
  // I don't know if I'm accessing a wchar_t appropriately here
  fputwc(L"[Привет Василий]\n"[3], stdout);
  return 0;
}

I tried tracing the execution from fputws, and not printing anything
seems to be caused by the return value of wcsrtombs().

Hope this helps,
Érico

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.