* Sven Joachim: > Am 14.10.2018 um 13:38 schrieb Florian Weimer: > >> * Sven Joachim: >> >>> This result is rather surprising. After all, "putchar('x')" is supposed >>> to do the same as "putc('x', stdout)", but here it does not. >> >> Can you reproduce this with something newer than 2.13-38+rpi2+deb7u3? >> Or on something else besides armhf? > > Surely, I tested 2.27-6 on amd64.
Eh, right. We have this in glibc: int putchar (int c) { int result; _IO_acquire_lock (_IO_stdout); result = _IO_putc_unlocked (c, _IO_stdout); _IO_release_lock (_IO_stdout); return result; } _IO_stdout is the variable to which stdout points to default, so this code was simply not adjusted when the assignment-to-stdout extension was implemented. This should use stdout instead. The puts function has the same problem. It looks to me we can get away with fixing this bug.