From a47806fafaec9a52a80e1795ad880b9b5008c4b8 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 30 Oct 2015 11:27:29 +0100 Subject: sd-daemon: increase sd_notify() socket buffer size Let's make sure we don't start blocking on sd_notify() earlier than necessary, let's bump the socket buffer sizes to 8M. We already do something similar for our logging socket buffers, hence apply a similar bump here. --- src/libsystemd/sd-daemon/sd-daemon.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/libsystemd') diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c index 77b5dd52f6..c7887804df 100644 --- a/src/libsystemd/sd-daemon/sd-daemon.c +++ b/src/libsystemd/sd-daemon/sd-daemon.c @@ -44,6 +44,8 @@ #include "strv.h" #include "util.h" +#define SNDBUF_SIZE (8*1024*1024) + static void unsetenv_all(bool unset_environment) { if (!unset_environment) @@ -440,6 +442,8 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char goto finish; } + fd_inc_sndbuf(fd, SNDBUF_SIZE); + iovec.iov_len = strlen(state); strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path)); -- cgit v1.2.3-54-g00ecf From 638b56cd3c703651013033b82000d2a9f2732048 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 1 Nov 2015 21:49:19 +0100 Subject: sd-daemon: verify NOTIFY_SOCKET path length Better generate a real error then simply connect to the wrong socket. --- src/libsystemd/sd-daemon/sd-daemon.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/libsystemd') diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c index c7887804df..27045e25d0 100644 --- a/src/libsystemd/sd-daemon/sd-daemon.c +++ b/src/libsystemd/sd-daemon/sd-daemon.c @@ -436,6 +436,11 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char goto finish; } + if (strlen(e) > sizeof(sockaddr.un.sun_path)) { + r = -EINVAL; + goto finish; + } + fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0); if (fd < 0) { r = -errno; -- cgit v1.2.3-54-g00ecf