We can use the buffer passed to fread(3) directly in the FILE *.
The buffer needs to be reset before each call to __srefill().
This preserves the expected behavior in all cases.
THe change was found originally in OpenBSD and later adopted by NetBSD.
Obtained from: OpenBSD (CVS 1.18)