guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shepherd] 03/04: Update 'NEWS'.


From: Ludovic Courtès
Subject: [shepherd] 03/04: Update 'NEWS'.
Date: Sat, 10 Sep 2022 17:05:49 -0400 (EDT)

civodul pushed a commit to branch master
in repository shepherd.

commit c7d6855f2f8ecc6ba087901793d8678189bd8b5d
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sat Sep 10 17:47:31 2022 +0200

    Update 'NEWS'.
---
 NEWS | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/NEWS b/NEWS
index 3798b31..1a1aa67 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,35 @@ Copyright © 2013-2014, 2016, 2018-2020, 2022 Ludovic Courtès 
<ludo@gnu.org>
 
 Please send Shepherd bug reports to bug-guix@gnu.org.
 
+* Changes in version 0.9.2
+** File descriptors used internally are now all marked as close-on-exec
+
+Previously, services started indirectly with ‘exec-command’ (which is usually
+the case) would not inherit any file descriptor from shepherd because
+‘exec-command’ would explicitly close all of them.  However, services started
+with ‘make-system-constructor’ and processes created by some other means, such
+as calling ‘system*’, would inherit some of those descriptors, giving them
+more authority than intended.
+
+The change here consists in marking all internally-used file descriptors as
+“close-on-exec” (O_CLOEXEC), a feature that’s been available on GNU/Linux and
+GNU/Hurd for years but that so far wasn’t used consistently in shepherd.  This
+is now fixed.  As a side-effect, the file-descriptor-closing loop in
+‘exec-command’ is now gone.
+
+** Client connections with ‘herd’ are non-blocking
+
+Previously, a misbehaving client could send an incomplete command
+(s-expression), causing shepherd to hang while waiting for completion.  (Note
+that said client is required to run with the same UID as shepherd, so this was
+not a security issue.)
+
+** Directory of log file is created if it doesn’t exist
+
+When a service constructor is passed ‘#:log-file "/var/log/foo/bar.log"’,
+shepherd now created /var/log/foo if it doesn’t exist; previously it would
+fail gracelessly.
+
 * Changes in version 0.9.1
 ** ‘make-inetd-constructor’ now accepts a list of endpoints
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]