|
Message-ID: <DM4PR12MB62074B95160717EB43FFB21780419@DM4PR12MB6207.namprd12.prod.outlook.com> Date: Wed, 7 Sep 2022 18:53:06 +0000 From: "Knott, Isabelle" <Isabelle.Knott@....com> To: "musl@...ts.openwall.com" <musl@...ts.openwall.com> Subject: [bug] Cannot fprintf/fwprintf numbers to a wmemstream [AMD Official Use Only - General] Hello, I have found that fprintf or fwprintf fails to write numbers to wmemstreams specifically, and also incorrectly reports how many characters were actually written: Here is some sample code that reproduces the issue #include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <wchar.h> int main() { wchar_t* buf; size_t buf_size; FILE* fd = open_wmemstream(&buf, &buf_size); if(fd == 0) { return -1; } //int chars_written = fprintf(fd, "%d", 40); // this also doesn't work int chars_written = fwprintf(fd, L"%d", 40); fclose(fd); printf("chars_written: %d\n", chars_written); printf("buf_size: %ld\n", buf_size); fwprintf(stdout, L"expected: \"%d\"\n", 40); printf("actual: \"%ls\"\n", buf); free(buf); return 0; } with musl-gcc compiles from 1.2.3: chars_written: 2 buf_size: 0 expected: "40" actual: "" with glibc 2.35, using fprintf on the wmemstream fails, but fwprintf succeeds, though it won't write to stdout for some reason: chars_written: 2 buf_size: 2 actual: "40" Thanks! -Isabelle
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.