]> git.ipfire.org Git - thirdparty/make.git/commit
[SV 65268] Un-set append mode for stdout/stderr on exit
authorPaul Smith <psmith@gnu.org>
Sun, 24 Mar 2024 19:19:11 +0000 (15:19 -0400)
committerPaul Smith <psmith@gnu.org>
Sun, 24 Mar 2024 19:25:53 +0000 (15:25 -0400)
commit242603fa46bb68428d1bac66ded6fbf7ae8e2605
treef2832f6dda5835c506bc0606353b3e4640e1fa34
parentb8a2a4424bb28c0c51e48b17f48d211d622b363f
[SV 65268] Un-set append mode for stdout/stderr on exit

It turns out that options set on stdout/stderr last after exit.
Leaving append-mode enabled can break other facilities, so reset the
flags on stdout/stderr before we exit.

* src/os.h: Add a new fd_reset_append() to reset flags on FDs.
Modify fd_set_append() to return the old flags.
* src/posixos.c (fd_reset_append): Set provided flags on the FD.
(fd_set_append): Return the previous flags set on the FD.
* src/output.c (output_init): Preserve old flags for stdout/stderr.
(output_close): Reset flags for stdout/stderr.
* src/w32/w32os.c: Implement dummy methods.
src/os.h
src/output.c
src/posixos.c
src/w32/w32os.c