aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0003-reopen-syslog-socket-on-error.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2015-07-07 10:41:30 +0300
committerTimo Teräs <timo.teras@iki.fi>2015-07-07 10:42:43 +0300
commit4c33c4970dead95052cae7f7a5ad0bb87641c3b7 (patch)
tree729c2cb1fe4fc8f8af17e880940886a0b45b856e /main/musl/0003-reopen-syslog-socket-on-error.patch
parent962c40d01a2c1b995f5a72ec86156a8564f7423f (diff)
downloadaports-4c33c4970dead95052cae7f7a5ad0bb87641c3b7.tar.bz2
aports-4c33c4970dead95052cae7f7a5ad0bb87641c3b7.tar.xz
main/musl: apply two fixes from mailing list
both are due to be committed upstream
Diffstat (limited to 'main/musl/0003-reopen-syslog-socket-on-error.patch')
-rw-r--r--main/musl/0003-reopen-syslog-socket-on-error.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/main/musl/0003-reopen-syslog-socket-on-error.patch b/main/musl/0003-reopen-syslog-socket-on-error.patch
new file mode 100644
index 0000000000..d89d6be22a
--- /dev/null
+++ b/main/musl/0003-reopen-syslog-socket-on-error.patch
@@ -0,0 +1,42 @@
+From 324dbe39c6941f9d37d438cc528a3dedbc89c636 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Tue, 7 Jul 2015 10:35:50 +0300
+Subject: [PATCH] reopen syslog socket on error
+
+---
+ src/misc/syslog.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/src/misc/syslog.c b/src/misc/syslog.c
+index e026f9b..f98944f 100644
+--- a/src/misc/syslog.c
++++ b/src/misc/syslog.c
+@@ -56,6 +56,14 @@ static void __openlog()
+ log_fd = fd;
+ }
+
++static int __reopenlog()
++{
++ close(log_fd);
++ log_fd = -1;
++ __openlog();
++ return log_fd;
++}
++
+ void openlog(const char *ident, int opt, int facility)
+ {
+ int cs;
+@@ -107,7 +115,9 @@ static void _vsyslog(int priority, const char *message, va_list ap)
+ if (l2 >= sizeof buf - l) l = sizeof buf - 1;
+ else l += l2;
+ if (buf[l-1] != '\n') buf[l++] = '\n';
+- if (send(log_fd, buf, l, 0) < 0 && (log_opt & LOG_CONS)) {
++ if (send(log_fd, buf, l, 0) < 0
++ && (__reopenlog() < 0 || send(log_fd, buf, l, 0) < 0)
++ && (log_opt & LOG_CONS)) {
+ fd = open("/dev/console", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ if (fd >= 0) {
+ dprintf(fd, "%.*s", l-hlen, buf+hlen);
+--
+2.4.5
+