svn commit: r234528 - head/lib/libc/stdio

David Schultz das at FreeBSD.org
Sat Apr 21 07:53:43 UTC 2012


On Sat, Apr 21, 2012, Peter Jeremy wrote:
> On 2012-Apr-21 06:08:02 +0000, David Schultz <das at FreeBSD.org> wrote:
> >Log:
> >  Fix a bug introduced in r187302 that was causing fputws() to enter an
> >  infinite loop pretty much unconditionally.
> 
> Unfortunately, I suspect you've just turned an unconditional infinite
> loop into a conditional one.  There's still a "wsp = ws;" inside the
> loop so if you pass in a long string (one that exceeds BUFSIZ bytes
> when converted to a multi-byte string) then wsp will be non-NULL
> after the call to __wcsnrtombs(), causing the do loop to loop and
> then wsp will be re-initialised to ws.  I think the fix is to move
> the "wsp = ws;" outside the loop.

Whoops -- good catch.  This should be fixed now.


More information about the svn-src-head mailing list