diff --git a/src/lib66/exec/ssexec_inresolve.c b/src/lib66/exec/ssexec_inresolve.c index 2e126f4fd7aad355671dfc2019ab4940dc9eb36e..0f4860e95a431a5dad639e61537666cdb6723b58 100644 --- a/src/lib66/exec/ssexec_inresolve.c +++ b/src/lib66/exec/ssexec_inresolve.c @@ -186,7 +186,6 @@ int ssexec_inresolve(int argc, char const *const *argv, ssexec_t *info) int found = 0, what = 0 ; uint8_t master = 0 ; - stralloc sa = STRALLOC_ZERO ; char const *svname = 0 ; char const *treename = info->treename.s ; char atree[SS_MAX_TREENAME + 1] ; @@ -204,9 +203,6 @@ int ssexec_inresolve(int argc, char const *const *argv, ssexec_t *info) argc--; svname = *argv ; - if (!set_ownersysdir(&sa, getuid())) - log_dieu(LOG_EXIT_SYS, "set owner directory") ; - if (!what) { char service_buf[MAXOPTS][INFO_FIELD_MAXLEN] = { @@ -318,22 +314,21 @@ int ssexec_inresolve(int argc, char const *const *argv, ssexec_t *info) wres = resolve_set_struct(DATA_SERVICE, &res) ; } - if (!master) { found = service_is_g(atree, svname, STATE_FLAGS_ISPARSED) ; if (found == -1) log_dieu(LOG_EXIT_SYS, "get information of service: ", svname, " -- please a bug report") ; else if (!found) - log_die(LOG_EXIT_USER, "unknown service: ", svname) ; + log_die(LOG_EXIT_USER, svname, " is not parsed -- try to parse it first") ; - if (!resolve_read_g(wres, sa.s, svname)) + if (!resolve_read_g(wres, info->base.s, svname)) log_dieusys(LOG_EXIT_SYS,"read resolve file") ; } else { - char solve[sa.len + SS_SYSTEM_LEN + 1 + strlen(treename) + SS_SVDIRS_LEN + 1] ; - auto_strings(solve, sa.s, SS_SYSTEM, "/", treename, SS_SVDIRS) ; + char solve[info->base.len + SS_SYSTEM_LEN + 1 + strlen(treename) + SS_SVDIRS_LEN + 1] ; + auto_strings(solve, info->base.s, SS_SYSTEM, "/", treename, SS_SVDIRS) ; if (!resolve_read(wres, solve, SS_MASTER + 1)) log_dieusys(LOG_EXIT_SYS,"read resolve file") ; @@ -405,14 +400,14 @@ int ssexec_inresolve(int argc, char const *const *argv, ssexec_t *info) wres = resolve_set_struct(DATA_TREE, &tres) ; } - found = tree_isvalid(sa.s, svname) ; + found = tree_isvalid(info->base.s, svname) ; if (found < 0) log_diesys(LOG_EXIT_SYS, "invalid tree directory") ; if (!found) log_dieusys(LOG_EXIT_SYS, "find tree: ", svname) ; - if (!resolve_read_g(wres, sa.s, svname)) + if (!resolve_read_g(wres, info->base.s, svname)) log_dieusys(LOG_EXIT_SYS, "read resolve file") ; info_field_align(tree_buf, fields, field_suffix,MAXOPTS) ; @@ -445,10 +440,7 @@ int ssexec_inresolve(int argc, char const *const *argv, ssexec_t *info) } resolve_free(wres) ; - } - stralloc_free(&sa) ; - return 0 ; }