diff options
Diffstat (limited to 'main/musl/0003-fix-fclose-of-permanent-stdin-out-err-streams.patch')
-rw-r--r-- | main/musl/0003-fix-fclose-of-permanent-stdin-out-err-streams.patch | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/main/musl/0003-fix-fclose-of-permanent-stdin-out-err-streams.patch b/main/musl/0003-fix-fclose-of-permanent-stdin-out-err-streams.patch deleted file mode 100644 index 53d8b65719..0000000000 --- a/main/musl/0003-fix-fclose-of-permanent-stdin-out-err-streams.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 426a0e2912c07f0e86feee2ed12f24a808eac2f4 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Wed, 9 Sep 2015 04:31:07 +0000 -Subject: [PATCH] fix fclose of permanent (stdin/out/err) streams -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -this fixes a bug reported by Nuno Gonçalves. previously, calling -fclose on stdin or stdout resulted in deadlock at exit time, since -__stdio_exit attempts to lock these streams to flush/seek them, and -has no easy way of knowing that they were closed. - -conceptually, leaving a FILE stream locked on fclose is valid since, -in the abstract machine, it ceases to exist. but to satisfy the -implementation-internal assumption in __stdio_exit that it can access -these streams unconditionally, we need to unlock them. - -it's also necessary that fclose leaves permanent streams in a state -where __stdio_exit will not attempt any further operations on them. -fortunately, the call to fflush already yields this property. ---- - src/stdio/fclose.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/stdio/fclose.c b/src/stdio/fclose.c -index 839d88a..d687a87 100644 ---- a/src/stdio/fclose.c -+++ b/src/stdio/fclose.c -@@ -9,7 +9,7 @@ int fclose(FILE *f) - int r; - int perm; - -- FFINALLOCK(f); -+ FLOCK(f); - - __unlist_locked_file(f); - -@@ -26,6 +26,7 @@ int fclose(FILE *f) - - if (f->getln_buf) free(f->getln_buf); - if (!perm) free(f); -- -+ else FUNLOCK(f); -+ - return r; - } --- -2.5.1 - |