use fputws_unlocked

Rich Felker dalias at aerifal.cx
Tue May 24 22:36:57 UTC 2011


On Tue, May 24, 2011 at 02:34:01PM +0200, MirkoVogt wrote:
> Hello,
> 
> while working with libuClibc-0.9.30.1.so I came along freezes in stdio
> which led to stack dumps as follows:

Are you claiming the freeze always happens, or only under certain
circumstances?

> While browsing through the code I found the following:
> 
> erdgeist at ubuntu:~/base-wrt.git/branches/backfire/build_dir/toolchain-arm_v5te_gcc-4.3.3+cs_uClibc-0.9.30.1_eabi/uClibc-0.9.30.1/libc/stdio$
> grep OUTPUT _vfprintf.c
> 
> 1215:#define OUTPUT(F,S) fputs_unlocked(S,F)
> 1248:#define OUTPUT(F,S) fputws(S,F)
> 
> So the second macro should read fputws_unlocked, too. I've verified
> that the freezes don't appear anymore after applying the following
> simple patch: http://pastebin.com/MiC6X0VX

The locks are supposed to be recursive, so this should not cause
deadlock. Are you sure you haven't corrupted the FILE object?

Rich


More information about the uClibc mailing list