From abd57166975b9922e80fa0bdeee69e7cac9571db Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Wed, 31 May 2023 14:22:43 +1100
Subject: [PATCH] allow exact number of SS_MAX_SERVICE

---
 src/lib66/exec/ssexec_init.c        | 4 ++--
 src/lib66/exec/ssexec_reconfigure.c | 4 ++--
 src/lib66/exec/ssexec_reload.c      | 2 +-
 src/lib66/exec/ssexec_restart.c     | 2 +-
 src/lib66/exec/ssexec_signal.c      | 4 ++--
 src/lib66/exec/ssexec_start.c       | 4 ++--
 src/lib66/exec/ssexec_status.c      | 4 ++--
 src/lib66/exec/ssexec_stop.c        | 4 ++--
 src/lib66/exec/ssexec_tree_status.c | 2 +-
 src/lib66/parse/parse_service.c     | 2 +-
 src/lib66/svc/svc_compute_ns.c      | 4 ++--
 11 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/lib66/exec/ssexec_init.c b/src/lib66/exec/ssexec_init.c
index 12a935dc..04e93f38 100644
--- a/src/lib66/exec/ssexec_init.c
+++ b/src/lib66/exec/ssexec_init.c
@@ -51,8 +51,8 @@ static void doit(stralloc *sa, ssexec_t *info, uint8_t earlier)
     graph_t graph = GRAPH_ZERO ;
     ss_state_t ste = STATE_ZERO ;
 
-    unsigned int areslen = 0, list[SS_MAX_SERVICE], visit[SS_MAX_SERVICE], nservice = 0, n = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    unsigned int areslen = 0, list[SS_MAX_SERVICE + 1], visit[SS_MAX_SERVICE + 1], nservice = 0, n = 0 ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     FLAGS_SET(flag, STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_WANTUP) ;
 
diff --git a/src/lib66/exec/ssexec_reconfigure.c b/src/lib66/exec/ssexec_reconfigure.c
index 6c4d76ba..d8b8ad83 100644
--- a/src/lib66/exec/ssexec_reconfigure.c
+++ b/src/lib66/exec/ssexec_reconfigure.c
@@ -42,8 +42,8 @@ int ssexec_reconfigure(int argc, char const *const *argv, ssexec_t *info)
     uint8_t siglen = 0 ;
     graph_t graph = GRAPH_ZERO ;
 
-    unsigned int areslen = 0, list[SS_MAX_SERVICE], visit[SS_MAX_SERVICE], nservice = 0, n = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    unsigned int areslen = 0, list[SS_MAX_SERVICE + 1], visit[SS_MAX_SERVICE + 1], nservice = 0, n = 0 ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
     char atree[SS_MAX_TREENAME + 1] ;
 
     FLAGS_SET(flag, STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_TOPARSE|STATE_FLAGS_WANTUP) ;
diff --git a/src/lib66/exec/ssexec_reload.c b/src/lib66/exec/ssexec_reload.c
index e7ad94fe..44ecc23a 100644
--- a/src/lib66/exec/ssexec_reload.c
+++ b/src/lib66/exec/ssexec_reload.c
@@ -39,7 +39,7 @@ int ssexec_reload(int argc, char const *const *argv, ssexec_t *info)
     graph_t graph = GRAPH_ZERO ;
 
     unsigned int areslen = 0, m = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
     char atree[SS_MAX_TREENAME + 1] ;
 
     FLAGS_SET(flag, STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_WANTUP) ;
diff --git a/src/lib66/exec/ssexec_restart.c b/src/lib66/exec/ssexec_restart.c
index b353bab2..dd01c46b 100644
--- a/src/lib66/exec/ssexec_restart.c
+++ b/src/lib66/exec/ssexec_restart.c
@@ -39,7 +39,7 @@ int ssexec_restart(int argc, char const *const *argv, ssexec_t *info)
     graph_t graph = GRAPH_ZERO ;
 
     unsigned int areslen = 0, m = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
     ss_state_t sta = STATE_ZERO ;
 
     FLAGS_SET(flag, STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_TORESTART|STATE_FLAGS_WANTUP) ;
diff --git a/src/lib66/exec/ssexec_signal.c b/src/lib66/exec/ssexec_signal.c
index d07f07e6..637da4c4 100644
--- a/src/lib66/exec/ssexec_signal.c
+++ b/src/lib66/exec/ssexec_signal.c
@@ -131,8 +131,8 @@ int ssexec_signal(int argc, char const *const *argv, ssexec_t *info)
     unsigned int datalen = 1 ;
     uint8_t reloadmsg = 0 ;
 
-    unsigned int areslen = 0, list[SS_MAX_SERVICE], visit[SS_MAX_SERVICE] ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    unsigned int areslen = 0, list[SS_MAX_SERVICE + 1], visit[SS_MAX_SERVICE + 1] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     /*
      * STATE_FLAGS_TOPROPAGATE = 0
diff --git a/src/lib66/exec/ssexec_start.c b/src/lib66/exec/ssexec_start.c
index 164337a7..7ce8fb21 100644
--- a/src/lib66/exec/ssexec_start.c
+++ b/src/lib66/exec/ssexec_start.c
@@ -39,8 +39,8 @@ int ssexec_start(int argc, char const *const *argv, ssexec_t *info)
     uint8_t siglen = 3 ;
 
     int n = 0 ;
-    unsigned int areslen = 0, list[SS_MAX_SERVICE], visit[SS_MAX_SERVICE], nservice = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    unsigned int areslen = 0, list[SS_MAX_SERVICE + 1], visit[SS_MAX_SERVICE + 1], nservice = 0 ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     FLAGS_SET(flag, STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_TOPARSE|STATE_FLAGS_WANTUP) ;
 
diff --git a/src/lib66/exec/ssexec_status.c b/src/lib66/exec/ssexec_status.c
index 76d30f49..601ee30e 100644
--- a/src/lib66/exec/ssexec_status.c
+++ b/src/lib66/exec/ssexec_status.c
@@ -314,7 +314,7 @@ static void info_display_requiredby(char const *field, resolve_service_t *res)
     graph_t graph = GRAPH_ZERO ;
 
     unsigned int areslen = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     stralloc deps = STRALLOC_ZERO ;
 
@@ -391,7 +391,7 @@ static void info_display_deps(char const *field, resolve_service_t *res)
     graph_t graph = GRAPH_ZERO ;
 
     unsigned int areslen = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     stralloc deps = STRALLOC_ZERO ;
 
diff --git a/src/lib66/exec/ssexec_stop.c b/src/lib66/exec/ssexec_stop.c
index 195f6262..0cd8a6f4 100644
--- a/src/lib66/exec/ssexec_stop.c
+++ b/src/lib66/exec/ssexec_stop.c
@@ -40,8 +40,8 @@ int ssexec_stop(int argc, char const *const *argv, ssexec_t *info)
     uint8_t siglen = 3 ;
     int e = 0 ;
 
-    unsigned int areslen = 0, list[SS_MAX_SERVICE], visit[SS_MAX_SERVICE], nservice = 0, n = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    unsigned int areslen = 0, list[SS_MAX_SERVICE + 1], visit[SS_MAX_SERVICE + 1], nservice = 0, n = 0 ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     FLAGS_SET(flag, STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_ISSUPERVISED|STATE_FLAGS_WANTDOWN) ;
 
diff --git a/src/lib66/exec/ssexec_tree_status.c b/src/lib66/exec/ssexec_tree_status.c
index bc8a1a7f..e47bacd9 100644
--- a/src/lib66/exec/ssexec_tree_status.c
+++ b/src/lib66/exec/ssexec_tree_status.c
@@ -349,7 +349,7 @@ static void info_display_contents(char const *field, char const *treename)
     graph_t graph = GRAPH_ZERO ;
 
     unsigned int areslen = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     if (NOFIELD) padding = info_display_field_name(field) ;
     else { field = 0 ; padding = 0 ; }
diff --git a/src/lib66/parse/parse_service.c b/src/lib66/parse/parse_service.c
index d1d21bad..faafa54e 100644
--- a/src/lib66/parse/parse_service.c
+++ b/src/lib66/parse/parse_service.c
@@ -169,7 +169,7 @@ void parse_service(char const *sv, ssexec_t *info, uint8_t force, uint8_t conf)
     int r ;
     unsigned int areslen = 0, count = 0, pos = 0 ;
     uint8_t rforce = 0 ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
     stralloc sa = STRALLOC_ZERO ;
 
     char main[strlen(sv) + 1] ;
diff --git a/src/lib66/svc/svc_compute_ns.c b/src/lib66/svc/svc_compute_ns.c
index 3cb16c72..cfee1b9c 100644
--- a/src/lib66/svc/svc_compute_ns.c
+++ b/src/lib66/svc/svc_compute_ns.c
@@ -127,8 +127,8 @@ int svc_compute_ns(resolve_service_t *res, uint8_t what, ssexec_t *info, char co
     stralloc sa = STRALLOC_ZERO ;
 
     unsigned int napid = 0 ;
-    unsigned int areslen = 0, list[SS_MAX_SERVICE], visit[SS_MAX_SERVICE] ;
-    resolve_service_t ares[SS_MAX_SERVICE] ;
+    unsigned int areslen = 0, list[SS_MAX_SERVICE + 1], visit[SS_MAX_SERVICE + 1] ;
+    resolve_service_t ares[SS_MAX_SERVICE + 1] ;
 
     uint32_t gflag = STATE_FLAGS_TOPROPAGATE|STATE_FLAGS_WANTUP ;
 
-- 
GitLab