76144aaa63
It is reported by tsan that funlockfile() can unlock an unlocked mutex. It happens when printf() is called before fopen() or other stdio stuff. As FLOCKFILE(fp) is called before __sinit(), _stdio_handles_locking is false, and _FLOCK(fp) will not be locked. But then cantwrite(fp) in __vfprintf() calls__sinit(), which makes _stdio_handles_locking become true, and FUNLOCKFILE(fp) unlocks _FLOCK(fp). Change _stdio_handles_locking into _caller_handles_locking, so __sinit() won't change its value. Add test due to my previous fault. Bug: 25392375 Change-Id: I483e3c3cdb28da65e62f1fd9615bf58c5403b4dd |
||
---|---|---|
.. | ||
findfp.c | ||
fread.c | ||
glue.h | ||
local.h | ||
refill.c | ||
snprintf.c | ||
sprintf.c | ||
stdio_ext.cpp | ||
stdio.c | ||
wcio.h |