From 82a0c8da56f2363f87941b0a27a568a1fcc80a6b Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Thu, 2 Feb 2023 21:39:14 +1100
Subject: [PATCH] add slash to SS_SERVICE constant

---
 src/include/66/constants.h                | 5 ++---
 src/lib66/graph/graph_build_service.c     | 4 ++--
 src/lib66/resolve/resolve_check_g.c       | 4 ++--
 src/lib66/resolve/resolve_read_g.c        | 4 ++--
 src/lib66/resolve/resolve_remove_g.c      | 4 ++--
 src/lib66/resolve/resolve_write_g.c       | 4 ++--
 src/lib66/sanitize/sanitize_system.c      | 4 ++--
 src/lib66/service/service_resolve_write.c | 4 ++--
 src/lib66/state/state_check.c             | 4 ++--
 src/lib66/state/state_read.c              | 4 ++--
 src/lib66/state/state_rmfile.c            | 4 ++--
 src/lib66/state/state_write.c             | 6 +++---
 src/lib66/utils/name_isvalid.c            | 2 +-
 13 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/src/include/66/constants.h b/src/include/66/constants.h
index e6bbc2f9..99242a60 100644
--- a/src/include/66/constants.h
+++ b/src/include/66/constants.h
@@ -23,8 +23,6 @@
 #define SS_SYSTEM_LEN (sizeof SS_SYSTEM - 1)
 #define SS_TREE_CURRENT "current"
 #define SS_TREE_CURRENT_LEN (sizeof SS_TREE_CURRENT - 1)
-#define SS_SERVICE "service"
-#define SS_SERVICE_LEN (sizeof SS_SERVICE - 1)
 #define SS_MODULE "module"
 #define SS_MODULE_LEN (sizeof SS_MODULE - 1)
 #define SS_SCANDIR "scandir"
@@ -43,7 +41,8 @@
 /**service dir*/
 #define SS_SVC "/svc"
 #define SS_SVC_LEN (sizeof SS_SVC - 1)
-
+#define SS_SERVICE "/service"
+#define SS_SERVICE_LEN (sizeof SS_SERVICE - 1)
 #define SS_MASTER "/Master"
 #define SS_MASTER_LEN (sizeof SS_MASTER - 1)
 #define SS_CONTENTS "contents"
diff --git a/src/lib66/graph/graph_build_service.c b/src/lib66/graph/graph_build_service.c
index 35547897..c2a73037 100644
--- a/src/lib66/graph/graph_build_service.c
+++ b/src/lib66/graph/graph_build_service.c
@@ -32,9 +32,9 @@ void graph_build_service(graph_t *graph, resolve_service_t *ares, unsigned int *
 
     stralloc sa = STRALLOC_ZERO ;
     char const *exclude[1] = { 0 } ;
-    char solve[info->base.len + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1] ;
+    char solve[info->base.len + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1] ;
 
-    auto_strings(solve, info->base.s, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE) ;
+    auto_strings(solve, info->base.s, SS_SYSTEM, SS_RESOLVE, SS_SERVICE) ;
 
     if (!sastr_dir_get_recursive(&sa, solve, exclude, S_IFREG, 0))
         log_dieu(LOG_EXIT_SYS, "get resolve files") ;
diff --git a/src/lib66/resolve/resolve_check_g.c b/src/lib66/resolve/resolve_check_g.c
index 98eccee8..5598d2c5 100644
--- a/src/lib66/resolve/resolve_check_g.c
+++ b/src/lib66/resolve/resolve_check_g.c
@@ -28,11 +28,11 @@ int resolve_check_g(resolve_wrapper_t *wres, char const *base, char const *name)
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
 
-    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
+    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
     if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
 
-        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
+        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
     } else if (wres->type == DATA_TREE || wres->type == DATA_TREE_MASTER) {
 
diff --git a/src/lib66/resolve/resolve_read_g.c b/src/lib66/resolve/resolve_read_g.c
index aaff2e63..d7167779 100644
--- a/src/lib66/resolve/resolve_read_g.c
+++ b/src/lib66/resolve/resolve_read_g.c
@@ -30,11 +30,11 @@ int resolve_read_g(resolve_wrapper_t *wres, char const *base, char const *name)
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
 
-    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
+    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
     if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
 
-        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
+        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
     } else if (wres->type == DATA_TREE || wres->type == DATA_TREE_MASTER) {
 
diff --git a/src/lib66/resolve/resolve_remove_g.c b/src/lib66/resolve/resolve_remove_g.c
index 7bb4087a..ae12d424 100644
--- a/src/lib66/resolve/resolve_remove_g.c
+++ b/src/lib66/resolve/resolve_remove_g.c
@@ -30,11 +30,11 @@ void resolve_remove_g(char const *base, char const *name, uint8_t data_type)
     int e = errno ;
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
-    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
+    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
     if (data_type == DATA_SERVICE || data_type == DATA_SERVICE_MASTER) {
 
-        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
+        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
         resolve_remove(path, name) ;
 
diff --git a/src/lib66/resolve/resolve_write_g.c b/src/lib66/resolve/resolve_write_g.c
index 5d9d9e61..e0441575 100644
--- a/src/lib66/resolve/resolve_write_g.c
+++ b/src/lib66/resolve/resolve_write_g.c
@@ -27,11 +27,11 @@ int resolve_write_g(resolve_wrapper_t *wres, char const *base, char const *name)
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
 
-    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
+    char path[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
 
     if (wres->type == DATA_SERVICE || wres->type == DATA_SERVICE_MASTER) {
 
-        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
+        auto_strings(path, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
     } else if (wres->type == DATA_TREE || wres->type == DATA_TREE_MASTER) {
 
diff --git a/src/lib66/sanitize/sanitize_system.c b/src/lib66/sanitize/sanitize_system.c
index c019b459..06a37c82 100644
--- a/src/lib66/sanitize/sanitize_system.c
+++ b/src/lib66/sanitize/sanitize_system.c
@@ -70,7 +70,7 @@ int sanitize_system(ssexec_t *info)
     size_t baselen = info->base.len ;
     uid_t log_uid ;
     gid_t log_gid ;
-    char dst[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1] ;
+    char dst[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1] ;
     auto_strings(dst,info->base.s, SS_SYSTEM) ;
 
     /** base is /var/lib/66 or $HOME/.66*/
@@ -137,7 +137,7 @@ int sanitize_system(ssexec_t *info)
         stralloc_free(&extra) ;
     }
 
-    auto_strings(dst, info->base.s, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE) ;
+    auto_strings(dst, info->base.s, SS_SYSTEM, SS_RESOLVE, SS_SERVICE) ;
     auto_check(dst) ;
 
     auto_strings(dst + baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN, SS_MASTER) ;
diff --git a/src/lib66/service/service_resolve_write.c b/src/lib66/service/service_resolve_write.c
index ebdf0394..76a69142 100644
--- a/src/lib66/service/service_resolve_write.c
+++ b/src/lib66/service/service_resolve_write.c
@@ -31,11 +31,11 @@ int service_resolve_write(resolve_service_t *res)
 
     char *name = res->sa.s + res->name ;
     size_t namelen = strlen(name) ;
-    char sym[strlen(res->sa.s + res->path.home) + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + 1] ;
+    char sym[strlen(res->sa.s + res->path.home) + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + 1] ;
     char dst[strlen(res->sa.s + res->path.tree) + SS_SVDIRS_LEN + 1] ;
     resolve_wrapper_t_ref wres = resolve_set_struct(DATA_SERVICE, res) ;
 
-    auto_strings(sym, res->sa.s + res->path.home, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name) ;
+    auto_strings(sym, res->sa.s + res->path.home, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name) ;
 
     auto_strings(dst, res->sa.s + res->path.tree, SS_SVDIRS) ;
 
diff --git a/src/lib66/state/state_check.c b/src/lib66/state/state_check.c
index 502587f4..49857572 100644
--- a/src/lib66/state/state_check.c
+++ b/src/lib66/state/state_check.c
@@ -28,9 +28,9 @@ int state_check(char const *base, char const *name)
 
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
-    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
+    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
 
-    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
+    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
 
     if (access(target, F_OK) < 0)
         return 0 ;
diff --git a/src/lib66/state/state_read.c b/src/lib66/state/state_read.c
index 6a836491..faccddb5 100644
--- a/src/lib66/state/state_read.c
+++ b/src/lib66/state/state_read.c
@@ -30,9 +30,9 @@ int state_read(ss_state_t *sta, char const *base, char const *name)
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
     char pack[STATE_STATE_SIZE] ;
-    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
+    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
 
-    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
+    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
 
     if (openreadnclose(target, pack, STATE_STATE_SIZE) < STATE_STATE_SIZE)
         return 0 ;
diff --git a/src/lib66/state/state_rmfile.c b/src/lib66/state/state_rmfile.c
index 4c94d6b2..29162993 100644
--- a/src/lib66/state/state_rmfile.c
+++ b/src/lib66/state/state_rmfile.c
@@ -29,9 +29,9 @@ void state_rmfile(char const *base, char const *name)
 
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
-    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
+    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
 
-    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
+    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE, "/", SS_STATUS) ;
 
     unlink_void(target) ;
 }
diff --git a/src/lib66/state/state_write.c b/src/lib66/state/state_write.c
index 4a29cb5c..656bef33 100644
--- a/src/lib66/state/state_write.c
+++ b/src/lib66/state/state_write.c
@@ -31,15 +31,15 @@ int state_write(ss_state_t *sta, char const *base, char const *name)
 
     size_t baselen = strlen(base) ;
     size_t namelen = strlen(name) ;
-    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
+    char target[baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN + 1 + SS_STATUS_LEN + 1] ;
 
-    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, "/", SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE) ;
+    auto_strings(target, base, SS_SYSTEM, SS_RESOLVE, SS_SERVICE, "/", name, SS_SVC, "/", name, SS_STATE) ;
 
     if (access(target, F_OK) < 0)
         if (!dir_create_parent(target, 0755))
             log_warnusys_return(LOG_EXIT_ZERO, "create directory: ", target) ;
 
-    auto_strings(target + baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + 1 + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN, "/", SS_STATUS) ;
+    auto_strings(target + baselen + SS_SYSTEM_LEN + SS_RESOLVE_LEN + SS_SERVICE_LEN + 1 + namelen + SS_SVC_LEN + 1 + namelen + SS_STATE_LEN, "/", SS_STATUS) ;
 
     char pack[STATE_STATE_SIZE] ;
 
diff --git a/src/lib66/utils/name_isvalid.c b/src/lib66/utils/name_isvalid.c
index 457ad0c5..b57b8000 100644
--- a/src/lib66/utils/name_isvalid.c
+++ b/src/lib66/utils/name_isvalid.c
@@ -26,7 +26,7 @@ void name_isvalid(char const *name)
     if (!memcmp(name, SS_MASTER + 1, 6))
         log_die(LOG_EXIT_USER, "service name: ", name, ": starts with reserved prefix Master") ;
 
-    if (!strcmp(name, SS_SERVICE))
+    if (!strcmp(name, SS_SERVICE + 1))
         log_die(LOG_EXIT_USER, "service as service name is a reserved name") ;
 
     if (!strcmp(name, SS_SERVICE "@"))
-- 
GitLab