aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0003-fix-fclose-of-permanent-stdin-out-err-streams.patch
diff options
context:
space:
mode:
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.patch50
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
-