From 9818b118a334d0ad613144dc25582cc6dbd64b1a Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Wed, 14 Jun 2023 23:21:54 +1100 Subject: [PATCH] fix check of resolve_read exit code --- src/lib66/exec/ssexec_env.c | 2 +- src/lib66/exec/ssexec_resolve.c | 2 +- src/lib66/exec/ssexec_state.c | 2 +- src/lib66/exec/ssexec_status.c | 2 +- src/lib66/exec/ssexec_tree_admin.c | 12 ++++++------ src/lib66/exec/ssexec_tree_resolve.c | 2 +- src/lib66/exec/ssexec_tree_signal.c | 3 ++- src/lib66/exec/ssexec_tree_status.c | 4 ++-- src/lib66/graph/graph_build_tree.c | 2 +- src/lib66/info/info_graph_display_service.c | 2 +- src/lib66/info/info_graph_display_tree.c | 2 +- src/lib66/resolve/resolve_get_field_tosa_g.c | 2 +- src/lib66/resolve/resolve_modify_field_g.c | 2 +- src/lib66/sanitize/sanitize_source.c | 2 +- src/lib66/service/service_graph_collect.c | 2 +- src/lib66/tree/tree_find_current.c | 2 +- src/lib66/tree/tree_get_permissions.c | 2 +- src/lib66/tree/tree_iscurrent.c | 2 +- src/lib66/tree/tree_isenabled.c | 2 +- src/lib66/tree/tree_isinitialized.c | 2 +- src/lib66/tree/tree_issupervised.c | 2 +- src/lib66/tree/tree_ongroups.c | 2 +- src/lib66/tree/tree_service_add.c | 2 +- src/lib66/tree/tree_service_remove.c | 2 +- 24 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/lib66/exec/ssexec_env.c b/src/lib66/exec/ssexec_env.c index 0c4a525f..d0cb5f2e 100644 --- a/src/lib66/exec/ssexec_env.c +++ b/src/lib66/exec/ssexec_env.c @@ -308,7 +308,7 @@ int ssexec_env(int argc, char const *const *argv, ssexec_t *info) goto freed ; } - if (!resolve_read_g(wres, info->base.s, sv)) + if (resolve_read_g(wres, info->base.s, sv) <= 0) log_dieusys(LOG_EXIT_SYS,"read resolve file of: ", sv) ; if (!res.environ.envdir) { diff --git a/src/lib66/exec/ssexec_resolve.c b/src/lib66/exec/ssexec_resolve.c index 9611b16c..00610854 100644 --- a/src/lib66/exec/ssexec_resolve.c +++ b/src/lib66/exec/ssexec_resolve.c @@ -266,7 +266,7 @@ int ssexec_resolve(int argc, char const *const *argv, ssexec_t *info) else if (!r || r == STATE_FLAGS_FALSE) log_die(LOG_EXIT_USER, "service: ", svname, " is not parsed -- try to parse it first using '66 parse ", svname, "'") ; - if (!resolve_read_g(wres, info->base.s, svname)) + if (resolve_read_g(wres, info->base.s, svname) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file") ; info_field_align(service_buf, fields, field_suffix,MAXOPTS) ; diff --git a/src/lib66/exec/ssexec_state.c b/src/lib66/exec/ssexec_state.c index 481f3bae..61d11b30 100644 --- a/src/lib66/exec/ssexec_state.c +++ b/src/lib66/exec/ssexec_state.c @@ -97,7 +97,7 @@ int ssexec_state(int argc, char const *const *argv, ssexec_t *info) log_die(LOG_EXIT_USER, "service: ", svname, " is not parsed -- try to parse it using '66 parse ", svname, "'") ; r = resolve_read_g(wres, info->base.s, svname) ; - if (r < 0) + if (r <= 0) log_dieu(LOG_EXIT_SYS, "read resolve file: ", svname) ; info_field_align(buf,fields,field_suffix,MAXOPTS) ; diff --git a/src/lib66/exec/ssexec_status.c b/src/lib66/exec/ssexec_status.c index e7fd374d..0cebee13 100644 --- a/src/lib66/exec/ssexec_status.c +++ b/src/lib66/exec/ssexec_status.c @@ -960,7 +960,7 @@ int ssexec_status(int argc, char const *const *argv, ssexec_t *info) if (!r || r == STATE_FLAGS_FALSE) log_die(LOG_EXIT_SYS, "service: ", svname, " is not parsed -- try to parse it using '66 parse ", svname, "'") ; - if (!resolve_read_g(wres, info->base.s, svname)) + if (resolve_read_g(wres, info->base.s, svname) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file of: ", svname) ; info_display_all(&res,what) ; diff --git a/src/lib66/exec/ssexec_tree_admin.c b/src/lib66/exec/ssexec_tree_admin.c index 6f177c6b..834894c6 100644 --- a/src/lib66/exec/ssexec_tree_admin.c +++ b/src/lib66/exec/ssexec_tree_admin.c @@ -493,7 +493,7 @@ void tree_groups(graph_t *graph, char const *base, char const *treename, char co uint_pack(pack, nb) ; pack[uint_fmt(pack, nb)] = 0 ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file of: ", treename) ; if (!resolve_modify_field(wres, E_RESOLVE_TREE_GROUPS, val) || @@ -531,7 +531,7 @@ void tree_master_modify_contents(char const *base) if (!sastr_rebuild_in_oneline(&sa)) log_dieu(LOG_EXIT_SYS, "rebuild stralloc") ; - if (!resolve_read_g(wres, base, SS_MASTER + 1)) + if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve Master file of trees") ; mres.ncontents = (uint32_t)ncontents ; @@ -609,7 +609,7 @@ void tree_master_enable_disable(char const *base, char const *treename, uint8_t log_trace(!action ? "disable" : "enable"," tree: ", treename, " from: ", SS_MASTER + 1) ; - if (!resolve_read_g(wres, base, SS_MASTER + 1)) + if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve Master file of trees") ; if (!mres.nenabled && action) { @@ -806,7 +806,7 @@ void tree_depends_requiredby(graph_t *g, char const *base, char const *treename, uint_pack(pack, nb) ; pack[uint_fmt(pack, nb)] = 0 ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file of: ", treename) ; if (!resolve_modify_field(wres, ewhat, sa.s) || @@ -892,7 +892,7 @@ void tree_rules(char const *base, char const *treename, uid_t *uids, uint8_t wha log_trace("set ", !what ? "denied" : "allowed", " user for tree: ", treename, "..." ) ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file of: ", treename) ; if (tres.nallow) @@ -1078,7 +1078,7 @@ void tree_clone(char const *clone, ssexec_t *info) if (lchown(dst, st.st_uid, st.st_gid) < 0) log_dieusys(LOG_EXIT_SYS, "chown: ", dst) ; - if (!resolve_read(wres, info->base.s, clone)) + if (resolve_read(wres, info->base.s, clone) <= 0) log_dieu(LOG_EXIT_SYS, "read resolve file of tree: ", clone) ; if (!resolve_modify_field(wres, E_RESOLVE_TREE_INIT, 0) || diff --git a/src/lib66/exec/ssexec_tree_resolve.c b/src/lib66/exec/ssexec_tree_resolve.c index da5e7933..c18198c3 100644 --- a/src/lib66/exec/ssexec_tree_resolve.c +++ b/src/lib66/exec/ssexec_tree_resolve.c @@ -133,7 +133,7 @@ int ssexec_tree_resolve(int argc, char const *const *argv, ssexec_t *info) log_dieusys(LOG_EXIT_SYS, "find tree: ", treename) ; } - if (!resolve_read_g(wres, info->base.s, treename)) + if (resolve_read_g(wres, info->base.s, treename) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file") ; info_field_align(tree_buf, fields, field_suffix,MAXOPTS) ; diff --git a/src/lib66/exec/ssexec_tree_signal.c b/src/lib66/exec/ssexec_tree_signal.c index 1be0f226..da2e0854 100644 --- a/src/lib66/exec/ssexec_tree_signal.c +++ b/src/lib66/exec/ssexec_tree_signal.c @@ -184,6 +184,7 @@ static void all_redir_fd(void) void tree_resolve_array_free(resolve_tree_t *ares, unsigned int areslen) { + log_flow() ; unsigned int pos = 0 ; for (; pos < areslen ; pos++) @@ -922,7 +923,7 @@ int ssexec_tree_signal(int argc, char const *const *argv, ssexec_t *info) resolve_tree_t cp = RESOLVE_TREE_ZERO ; wres = resolve_set_struct(DATA_TREE, &tres) ; - if (!resolve_read_g(wres, info->base.s, treename)) + if (resolve_read_g(wres, info->base.s, treename) <= 0) log_dieu(LOG_EXIT_SYS, "read resolve file of: ", treename, " -- please make a bug report") ; tree_resolve_copy(&cp, &tres) ; diff --git a/src/lib66/exec/ssexec_tree_status.c b/src/lib66/exec/ssexec_tree_status.c index 29cffcfb..072e7419 100644 --- a/src/lib66/exec/ssexec_tree_status.c +++ b/src/lib66/exec/ssexec_tree_status.c @@ -138,7 +138,7 @@ static void info_display_allow(char const *field, char const *treename) resolve_tree_t tres = RESOLVE_TREE_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; - if (!resolve_read_g(wres, pinfo->base.s, treename)) + if (resolve_read_g(wres, pinfo->base.s, treename) <= 0) log_dieusys(LOG_EXIT_SYS,"read resolve file of tree: ", treename) ; if (NOFIELD) @@ -196,7 +196,7 @@ static void info_display_groups(char const *field, char const *treename) resolve_tree_t tres = RESOLVE_TREE_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; - if (!resolve_read_g(wres, pinfo->base.s, treename)) + if (resolve_read_g(wres, pinfo->base.s, treename) <= 0) log_dieusys(LOG_EXIT_SYS,"read resolve file of: ", treename) ; if (NOFIELD) diff --git a/src/lib66/graph/graph_build_tree.c b/src/lib66/graph/graph_build_tree.c index 6ea14f4f..8a6bf0d3 100644 --- a/src/lib66/graph/graph_build_tree.c +++ b/src/lib66/graph/graph_build_tree.c @@ -44,7 +44,7 @@ void graph_build_tree(graph_t *g, char const *base, resolve_tree_master_enum_t f char *name = sa.s + pos ; - if (!resolve_read_g(wres, base, name)) + if (resolve_read_g(wres, base, name) <= 0) log_dieu(LOG_EXIT_SYS, "read resolve file of: ", name) ; if (!graph_vertex_add(g, name)) diff --git a/src/lib66/info/info_graph_display_service.c b/src/lib66/info/info_graph_display_service.c index 881fafaa..b81c0340 100644 --- a/src/lib66/info/info_graph_display_service.c +++ b/src/lib66/info/info_graph_display_service.c @@ -50,7 +50,7 @@ int info_graph_display_service(char const *name) if (!set_ownersysdir_stack(base, getuid())) log_warn_return(LOG_EXIT_ZERO, "set owner directory") ; - if (!resolve_read_g(wres, base, name)) { + if (resolve_read_g(wres, base, name) <= 0) { log_warnu("read resolve file of: ",name) ; goto freed ; } diff --git a/src/lib66/info/info_graph_display_tree.c b/src/lib66/info/info_graph_display_tree.c index 7cd48eb8..b71eab17 100644 --- a/src/lib66/info/info_graph_display_tree.c +++ b/src/lib66/info/info_graph_display_tree.c @@ -54,7 +54,7 @@ int info_graph_display_tree(char const *name) goto freed ; } - if (!resolve_read_g(wres, sa.s, name)) + if (resolve_read_g(wres, sa.s, name) <= 0) goto freed ; sa.len = 0 ; diff --git a/src/lib66/resolve/resolve_get_field_tosa_g.c b/src/lib66/resolve/resolve_get_field_tosa_g.c index 2bd7413f..b4ce3810 100644 --- a/src/lib66/resolve/resolve_get_field_tosa_g.c +++ b/src/lib66/resolve/resolve_get_field_tosa_g.c @@ -54,7 +54,7 @@ int resolve_get_field_tosa_g(stralloc *sa, char const *base, char const *name, u } else return 0 ; - if (!resolve_read_g(wres, base, name)) + if (resolve_read_g(wres, base, name) <= 0) goto err ; if (!resolve_get_field_tosa(sa, wres, field)) diff --git a/src/lib66/resolve/resolve_modify_field_g.c b/src/lib66/resolve/resolve_modify_field_g.c index e882bfdf..9792f7b5 100644 --- a/src/lib66/resolve/resolve_modify_field_g.c +++ b/src/lib66/resolve/resolve_modify_field_g.c @@ -22,7 +22,7 @@ int resolve_modify_field_g(resolve_wrapper_t_ref wres, char const *base, char co { log_flow() ; - if (!resolve_read_g(wres, base, name)) + if (resolve_read_g(wres, base, name) <= 0) return 0 ; if (!resolve_modify_field(wres, field, value)) diff --git a/src/lib66/sanitize/sanitize_source.c b/src/lib66/sanitize/sanitize_source.c index ead5f1c0..f678f0ed 100644 --- a/src/lib66/sanitize/sanitize_source.c +++ b/src/lib66/sanitize/sanitize_source.c @@ -67,7 +67,7 @@ void sanitize_source(char const *name, ssexec_t *info) /** We can come from ssexec_reconfigure, in * this case we need to use the tree defined previously */ r = resolve_read_g(wres, info->base.s, name) ; - if (r < 0) + if (r <= 0) log_dieu(LOG_EXIT_SYS, "read resolve file: ", name) ; if (!state_read(&sta, &res)) diff --git a/src/lib66/service/service_graph_collect.c b/src/lib66/service/service_graph_collect.c index d249b667..97e67c5a 100644 --- a/src/lib66/service/service_graph_collect.c +++ b/src/lib66/service/service_graph_collect.c @@ -83,7 +83,7 @@ void service_graph_collect(graph_t *g, char const *alist, size_t alen, resolve_s } else continue ; - if (!resolve_read_g(wres, info->base.s, name)) + if (resolve_read_g(wres, info->base.s, name) <= 0) log_dieu(LOG_EXIT_SYS, "read resolve file of: ", name, " -- please make a bug report") ; if (FLAGS_ISSET(flag, STATE_FLAGS_ISSUPERVISED)) { diff --git a/src/lib66/tree/tree_find_current.c b/src/lib66/tree/tree_find_current.c index f2ef73d9..8ff8d3b5 100644 --- a/src/lib66/tree/tree_find_current.c +++ b/src/lib66/tree/tree_find_current.c @@ -31,7 +31,7 @@ int tree_find_current(char *treename, char const *base) resolve_tree_master_t mres = RESOLVE_TREE_MASTER_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE_MASTER, &mres) ; - if (!resolve_read_g(wres, base, SS_MASTER + 1)) + if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) goto err ; if (mres.current) { diff --git a/src/lib66/tree/tree_get_permissions.c b/src/lib66/tree/tree_get_permissions.c index 96ca2db9..16a8b130 100644 --- a/src/lib66/tree/tree_get_permissions.c +++ b/src/lib66/tree/tree_get_permissions.c @@ -37,7 +37,7 @@ int tree_get_permissions(char const *base, char const *treename) resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; uid_t uid = getuid(), treeuid = -1 ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) goto freed ; if (tres.nallow) { diff --git a/src/lib66/tree/tree_iscurrent.c b/src/lib66/tree/tree_iscurrent.c index 22b9ef93..84d71107 100644 --- a/src/lib66/tree/tree_iscurrent.c +++ b/src/lib66/tree/tree_iscurrent.c @@ -29,7 +29,7 @@ int tree_iscurrent(char const *base, char const *treename) resolve_tree_master_t mres = RESOLVE_TREE_MASTER_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE_MASTER, &mres) ; - if (!resolve_read_g(wres, base, SS_MASTER + 1)) + if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) goto err ; if (!strcmp(mres.sa.s + mres.current, treename)) diff --git a/src/lib66/tree/tree_isenabled.c b/src/lib66/tree/tree_isenabled.c index 1edbd99f..00346fc9 100644 --- a/src/lib66/tree/tree_isenabled.c +++ b/src/lib66/tree/tree_isenabled.c @@ -32,7 +32,7 @@ int tree_isenabled(char const *base, char const *treename) resolve_tree_master_t mres = RESOLVE_TREE_MASTER_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE_MASTER, &mres) ; - if (!resolve_read_g(wres, base, SS_MASTER + 1)) + if (resolve_read_g(wres, base, SS_MASTER + 1) <= 0) goto err ; if (mres.nenabled) { diff --git a/src/lib66/tree/tree_isinitialized.c b/src/lib66/tree/tree_isinitialized.c index abbc262a..9e16dc74 100644 --- a/src/lib66/tree/tree_isinitialized.c +++ b/src/lib66/tree/tree_isinitialized.c @@ -29,7 +29,7 @@ int tree_isinitialized(char const *base, char const *treename) resolve_tree_t tres = RESOLVE_TREE_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) goto err ; if (tres.init) diff --git a/src/lib66/tree/tree_issupervised.c b/src/lib66/tree/tree_issupervised.c index 96786f23..c7c95ff3 100644 --- a/src/lib66/tree/tree_issupervised.c +++ b/src/lib66/tree/tree_issupervised.c @@ -29,7 +29,7 @@ int tree_issupervised(char const *base, char const *treename) resolve_tree_t tres = RESOLVE_TREE_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) goto err ; if (tres.supervised) diff --git a/src/lib66/tree/tree_ongroups.c b/src/lib66/tree/tree_ongroups.c index c5e385d0..aae0fcb4 100644 --- a/src/lib66/tree/tree_ongroups.c +++ b/src/lib66/tree/tree_ongroups.c @@ -34,7 +34,7 @@ int tree_ongroups(char const *base, char const *treename, char const *group) resolve_tree_t tres = RESOLVE_TREE_ZERO ; resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) goto err ; if (tres.ngroups) { diff --git a/src/lib66/tree/tree_service_add.c b/src/lib66/tree/tree_service_add.c index d7067410..b4f71e3b 100644 --- a/src/lib66/tree/tree_service_add.c +++ b/src/lib66/tree/tree_service_add.c @@ -28,7 +28,7 @@ void tree_service_add(char const *base, char const *treename, char const *servic resolve_wrapper_t_ref wres = resolve_set_struct(DATA_TREE, &tres) ; stralloc sa = STRALLOC_ZERO ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file of tree: ", treename) ; if (tres.ncontents) { diff --git a/src/lib66/tree/tree_service_remove.c b/src/lib66/tree/tree_service_remove.c index 7525b158..14f983e6 100644 --- a/src/lib66/tree/tree_service_remove.c +++ b/src/lib66/tree/tree_service_remove.c @@ -31,7 +31,7 @@ void tree_service_remove(char const *base, char const *treename, char const *ser log_trace("modify field contents of resolve tree file: ", treename) ; - if (!resolve_read_g(wres, base, treename)) + if (resolve_read_g(wres, base, treename) <= 0) log_dieusys(LOG_EXIT_SYS, "read resolve file of tree: ", treename) ; if (tres.ncontents) { -- GitLab