]> sourceware.org Git - newlib-cygwin.git/commit
stdio: Fix bugs in commit 3d94e07c49b5
authorTakashi Yano <takashi.yano@nifty.ne.jp>
Fri, 10 Nov 2023 16:09:47 +0000 (01:09 +0900)
committerCorinna Vinschen <corinna@vinschen.de>
Mon, 20 Nov 2023 19:59:12 +0000 (20:59 +0100)
commitbc986b7ff668aa98372fc4e885307339e7ab3f51
tree4a8b16525b74690bafcebe896c427c3ae94a025f
parentd36b4f3f069881b2613b2754d6492d596c9e6ab9
stdio: Fix bugs in commit 3d94e07c49b5

The commit 3d94e07c49b5 has a few bugs which cause testsuite failure
in libstdc++. This is due to excess orientation check in __srefill_r()
and _ungetc_r(). Further, sscanf() family also calls ssvfscanf() family
with fp->_file == -1. This causes undesired orientation set/check for
sscanf() family. This patch fixes these problems.

Also, as in GLibC, do not set orientation in ungetc, and only set, but
do not check orientation in ungetwc.

Fixes: 3d94e07c49b5 ("newlib: libc: Fix crash on fprintf to a wide-oriented stream.")
Reported-by: Christophe Lyon <christophe.lyon@linaro.org>
Reported-by: Joel Sherrill <joel@rtems.org>
Co-developed-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
27 files changed:
newlib/libc/stdio/asiprintf.c
newlib/libc/stdio/asniprintf.c
newlib/libc/stdio/asnprintf.c
newlib/libc/stdio/asprintf.c
newlib/libc/stdio/getc.c
newlib/libc/stdio/refill.c
newlib/libc/stdio/siprintf.c
newlib/libc/stdio/siscanf.c
newlib/libc/stdio/sniprintf.c
newlib/libc/stdio/snprintf.c
newlib/libc/stdio/sprintf.c
newlib/libc/stdio/sscanf.c
newlib/libc/stdio/swprintf.c
newlib/libc/stdio/swscanf.c
newlib/libc/stdio/ungetc.c
newlib/libc/stdio/ungetwc.c
newlib/libc/stdio/vasiprintf.c
newlib/libc/stdio/vasniprintf.c
newlib/libc/stdio/vasnprintf.c
newlib/libc/stdio/vasprintf.c
newlib/libc/stdio/vsiprintf.c
newlib/libc/stdio/vsiscanf.c
newlib/libc/stdio/vsniprintf.c
newlib/libc/stdio/vsnprintf.c
newlib/libc/stdio/vsprintf.c
newlib/libc/stdio/vsscanf.c
newlib/libc/stdio/vswprintf.c
This page took 0.03711 seconds and 5 git commands to generate.