diff options
author | Rich Felker <dalias@aerifal.cx> | 2014-09-04 22:21:17 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-03-30 01:15:44 -0400 |
commit | f071365e66174937ffcb68c103e68573ce7dfd13 (patch) | |
tree | 25c8d41e51e721c69f51167af1a30930da7b5f63 /src/conf | |
parent | 6d14779eabec925c3977584d5dfd52778047b856 (diff) | |
download | musl-f071365e66174937ffcb68c103e68573ce7dfd13.tar.gz musl-f071365e66174937ffcb68c103e68573ce7dfd13.tar.xz musl-f071365e66174937ffcb68c103e68573ce7dfd13.zip |
fix multiple stdio functions' behavior on zero-length operations
previously, fgets, fputs, fread, and fwrite completely omitted locking and access to the FILE object when their arguments yielded a zero length read or write operation independent of the FILE state. this optimization was invalid; it wrongly skipped marking the stream as byte-oriented (a C conformance bug) and exposed observably missing synchronization (a POSIX conformance bug) where one of these functions could wrongly complete despite another thread provably holding the lock. (cherry picked from commit 6e2bb7acf42589fb7130b039d0623e2ca42503dd)
Diffstat (limited to 'src/conf')
0 files changed, 0 insertions, 0 deletions