From 512a9d854c9d53e04a9b902210ef2418b27dc585 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Sun, 27 Nov 2022 16:35:38 +1100 Subject: [PATCH] only talk with the main scandir --- src/lib66/sanitize/sanitize_scandir.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/lib66/sanitize/sanitize_scandir.c b/src/lib66/sanitize/sanitize_scandir.c index 46dfa8c6..2cb4a9f6 100644 --- a/src/lib66/sanitize/sanitize_scandir.c +++ b/src/lib66/sanitize/sanitize_scandir.c @@ -93,7 +93,7 @@ static void compute_supervision_dir(resolve_service_t *res) umask(hmod) ; } - +#include <stdlib.h> void sanitize_scandir(resolve_service_t *res, uint32_t flag) { log_flow() ; @@ -102,12 +102,10 @@ void sanitize_scandir(resolve_service_t *res, uint32_t flag) char *name = res->sa.s + res->name ; size_t namelen = strlen(name) ; size_t livelen = strlen(res->sa.s + res->live.livedir) ; - size_t scandirlen = strlen(res->sa.s + res->live.scandir) ; + size_t scandirlen = livelen + SS_SCANDIR_LEN + 1 + strlen(res->sa.s + res->ownerstr) ; char svcandir[scandirlen + 1] ; - auto_strings(svcandir, res->sa.s + res->live.scandir) ; - - svcandir[scandirlen - namelen - 1] = 0 ; + auto_strings(svcandir, res->sa.s + res->live.livedir, SS_SCANDIR, "/", res->sa.s + res->ownerstr) ; r = access(res->sa.s + res->live.scandir, F_OK) ; if (r == -1 && FLAGS_ISSET(flag, STATE_FLAGS_TOINIT)) { -- GitLab