Re: fprintf() crashes on wide-oriented stream.

Takashi Yano <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Hi Jeff,

Thanks for reviewing and the comment.

On Wed, 4 Oct 2023 16:16:13 -0400
Jeff Johnston wrote:
> I finally took a look at this.  The issue is whether POSIX compliance is
> desired.

IIUC, POSIX states that width setting is once decided, it cannot be
changed until the stream is closed. However, nothing is stated what
should happen when different width data is output into the stream.

> Corinna would have
> strong opinions that it is desired and thus, I think she should have her
> say when she gets back.  I personally believe that
> newlib should have behaved like glibc.  I also think the test snippet is
> invalid and should have performed an fwide call on stdout
> to reset the wide-orientation and have the code work properly in all cases.

Currently, fputs and fputc works even for wide-oriended stream, so to
be consistent with that, fprintf also might be better to work.

I wouldn't necessarily expect fprintf to work on wide-oriented streams,
but buffer overruns should not happen anyway.

So, newlib should be fixed either way.

-- 
Takashi Yano <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.