|author||Rich Felker <email@example.com>||2016-03-28 23:41:17 -0400|
|committer||Rich Felker <firstname.lastname@example.org>||2016-03-28 23:41:17 -0400|
fix undefined pointer comparison in stdio-internal __toread
the comparison f->wpos > f->buf has undefined behavior when f->wpos is a null pointer, despite the intuition (and actual compiler behavior, for all known compilers) being that NULL > ptr is false for all valid pointers ptr. the purpose of the comparison is to determine if the write buffer is non-empty, and the idiom used elsewhere for that is comparison against f->wbase, which is either a null pointer when not writing, or equal to f->buf when writing. in the former case, both f->wpos and f->wbase are null; in the latter they are both non-null and point into the same array.
Diffstat (limited to 'ldso')
0 files changed, 0 insertions, 0 deletions