From b31e4bb5c865b736aecffb33efd17643968c5717 Mon Sep 17 00:00:00 2001
From: obarun <eric@obarun.org>
Date: Wed, 31 May 2023 16:27:33 +1100
Subject: [PATCH] avoid lost of the name

---
 src/lib66/parse/parse_compute_resolve.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/lib66/parse/parse_compute_resolve.c b/src/lib66/parse/parse_compute_resolve.c
index ec645d23..5a3e61e9 100644
--- a/src/lib66/parse/parse_compute_resolve.c
+++ b/src/lib66/parse/parse_compute_resolve.c
@@ -348,10 +348,12 @@ static void compute_log(resolve_service_t *res, resolve_service_t *ares, unsigne
     resolve_init(wres) ;
 
     char *str = res->sa.s ;
-    char *name = str + res->logger.name ;
-    size_t namelen = strlen(name) ;
-
+    size_t namelen = strlen(str + res->logger.name) ;
+    char name[namelen + 1] ;
     char description[namelen + 7 + 1] ;
+
+    auto_strings(name, str + res->logger.name) ;
+
     auto_strings(description, str + res->name, " logger") ;
 
     lres.name = resolve_add_string(wres, name) ;
@@ -412,7 +414,9 @@ static void compute_log(resolve_service_t *res, resolve_service_t *ares, unsigne
     }
 
     if (service_resolve_array_search(ares, *areslen, name) < 0) {
-        if (*areslen >= SS_MAX_SERVICE)
+
+        log_trace("add service ", name, " to the selection") ;
+        if (*areslen > SS_MAX_SERVICE)
             log_die(LOG_EXIT_SYS, "too many services to parse -- compile again 66 changing the --max-service options") ;
 
         ares[(*areslen)++] = lres ;
@@ -521,8 +525,8 @@ void parse_compute_resolve(unsigned int idx, resolve_service_t *ares, unsigned i
             } else {
 
                 res->dependencies.depends = resolve_add_string(wres, res->sa.s + res->logger.name) ;
-
             }
+
             res->dependencies.ndepends++ ;
 
             compute_log(res, ares, areslen, info) ;
-- 
GitLab