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