terminal: seek when switching between reading and writing
When a stdio stream is opened in update mode (e.g., "w+"), the C standard forbids switching between reading or writing without an intervening positioning function. Many implementations are lenient about this, but Solaris libc will flush the recently-read contents to the output buffer. In this instance, that meant writing the non-echoed password that the user just typed to the terminal.
Fix it by inserting a no-op fseek between the read and write.
The opposite direction (writing followed by reading) is also disallowed, but our intervening fflush is an acceptable positioning function for that alternative.
Signed-off-by: Jeff King <firstname.lastname@example.org> Signed-off-by: Junio C Hamano <email@example.com>