From 48ac1dd2370c4ae56a9f1ab1cb6a9b4f9bb881bd Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Tue, 27 Dec 2022 14:58:47 +0900 Subject: [PATCH] include/ipc: Don't store private endpoints in per-user directories Private endpoints are stored in per-user directories that are created when the ipc module is loaded. However, the mode and ownership that the directory is created with may be incorrect, depending on the mode of the parent directory. This commit modifies the ipc module so that endpoints are not created in per-user directories, and moves the necessary directory creation code to the Makefile, where it will be executed during installation. --- Makefile | 3 ++- include/ipc.sh | 11 +---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 1bff3bb..d9b2b05 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,9 @@ clean: install: mkdir -p $(DESTDIR)/$(PREFIX)/share/toolbox mkdir -p $(DESTDIR)/$(PREFIX)/bin - mkdir -p $(DESTDIR)/var/lib/toolbox/ipc + mkdir -p $(DESTDIR)/var/lib/toolbox/ipc/{pub,priv,pubsub} mkdir -p $(DESTDIR)/var/lib/toolbox/uipc + chmod -R g+rwxs $(DESTDIR)/var/lib/toolbox/ipc cp toolbox.sh $(DESTDIR)/$(PREFIX)/share/toolbox/. cp -r include $(DESTDIR)/$(PREFIX)/share/toolbox/. cp -r utils $(DESTDIR)/$(PREFIX)/share/toolbox/. diff --git a/include/ipc.sh b/include/ipc.sh index 0dfeced..2978e46 100644 --- a/include/ipc.sh +++ b/include/ipc.sh @@ -22,19 +22,10 @@ __init() { fi declare -gxr __ipc_root="/var/lib/toolbox/ipc" - declare -gxr __ipc_public="$__ipc_root/pub" - declare -gxr __ipc_private="$__ipc_root/priv/$USER" - declare -gxr __ipc_group="toolbox_ipc" declare -gxr __ipc_pubsub_root="$__ipc_root/pubsub" declare -gxir __ipc_version=1 - if ! mkdir -p "$__ipc_private" || - ! chgrp "$__ipc_group" "$__ipc_private"; then - log_error "Could not initialize private IPC directory $__ipc_private" - return 1 - fi - return 0 } @@ -494,7 +485,7 @@ ipc_endpoint_open() { local self self="${0##*/}" - name="priv/$USER/$self.$$.$(date +"%s").$RANDOM" + name="priv/$USER.$self.$$.$(date +"%s").$RANDOM" fi endpoint="$__ipc_root/$name" -- 2.47.3