diff --git a/src/lib66/exec/ssexec_tree_admin.c b/src/lib66/exec/ssexec_tree_admin.c index 834894c6e871e5b11ba12a676c52f45389080269..3538c5a12b7734590d240894f5faf7e990021342 100644 --- a/src/lib66/exec/ssexec_tree_admin.c +++ b/src/lib66/exec/ssexec_tree_admin.c @@ -120,7 +120,7 @@ tree_what_t what_init(void) tree_what_t what = TREE_WHAT_ZERO ; - memset(what.gr, 0, 6) ; + memset(what.gr, 0, 6 * sizeof(char)); ; memset(what.auids, 0, 256 * sizeof(uid_t)); memset(what.duids, 0, 256 * sizeof(uid_t)) ; diff --git a/src/lib66/exec/ssexec_tree_signal.c b/src/lib66/exec/ssexec_tree_signal.c index e798344d6c3536d8b16e9fa05f80fc4612a12775..056dee0e8401218cd96c8fcbf0c7d67f9cc980c2 100644 --- a/src/lib66/exec/ssexec_tree_signal.c +++ b/src/lib66/exec/ssexec_tree_signal.c @@ -626,7 +626,7 @@ static int async_deps(pidtree_t *apidt, unsigned int i, unsigned int what, ssexe if (x.revents & IOPAUSE_READ) { - memset(buf, 0, sizeof(buf)) ; + memset(buf, 0, ((UINT_FMT*2)*SS_MAX_SERVICE + 1) * sizeof(char)) ; r = read(apidt[i].pipe[0], buf, sizeof(buf)) ; if (r < 0) log_dieu(LOG_EXIT_SYS, "read from pipe") ; diff --git a/src/lib66/module/regex_replace.c b/src/lib66/module/regex_replace.c index d6ce2762583999391e634ca75b26fd308b211219..0d6698cbd9a69b96f5978f957fcde49c2f6aaa75 100644 --- a/src/lib66/module/regex_replace.c +++ b/src/lib66/module/regex_replace.c @@ -78,9 +78,9 @@ void regex_replace(stralloc *list, resolve_service_t *res) if ((line[0] != ':') || (get_sep_before(line + 1, ':', '=') < 0)) log_die(LOG_EXIT_SYS, "bad format in line: ", line, " of key @infiles field") ; - memset(filename, 0, SS_MAX_SERVICE_NAME + 1) ; - memset(replace, 0, linelen + 1) ; - memset(regex, 0, linelen + 1) ; + memset(filename, 0, SS_MAX_SERVICE_NAME + 1 * sizeof(char)); ; + memset(replace, 0, linelen + 1 * sizeof(char)) ; + memset(regex, 0, linelen + 1 * sizeof(char)) ; fpos = regex_get_file_name(filename, line) ; if (fpos < 3) all = 1 ; diff --git a/src/lib66/parse/parse_compute_list.c b/src/lib66/parse/parse_compute_list.c index 1bd1ab20c364844a1b6488eb89ed866575ed2c01..9ec0bd534d597e5008a386b24a608a0610ee7a73 100644 --- a/src/lib66/parse/parse_compute_list.c +++ b/src/lib66/parse/parse_compute_list.c @@ -43,7 +43,7 @@ int parse_compute_list(resolve_wrapper_t_ref wres, stralloc *sa, uint32_t *res, char f[len + nelement + 2] ; - memset(f, 0, len) ; + memset(f, 0, len * sizeof(size_t)) ; for (; pos < sa->len ; pos += strlen(sa->s + pos) + 1) { diff --git a/src/lib66/parse/parse_rename_interdependences.c b/src/lib66/parse/parse_rename_interdependences.c index 96eb3430c5956c85ebd76e43a54acadb1f5579d9..cdb4409136073a1c49b8095010cd73d2d53b2a20 100644 --- a/src/lib66/parse/parse_rename_interdependences.c +++ b/src/lib66/parse/parse_rename_interdependences.c @@ -79,7 +79,7 @@ static void parse_prefix_name(unsigned int idx, resolve_service_t *ares, unsigne size_t len = (mlen + 1 + SS_MAX_TREENAME + 2) * ares[idx].dependencies.ndepends ; char n[len] ; - memset(n, 0, len) ; + memset(n, 0, len * sizeof(size_t)); ; parse_prefix(n, &stk, ares, areslen, prefix) ; @@ -98,7 +98,7 @@ static void parse_prefix_name(unsigned int idx, resolve_service_t *ares, unsigne size_t len = (mlen + 1 + SS_MAX_TREENAME + 2) * ares[idx].dependencies.nrequiredby ; char n[len] ; - memset(n, 0, len) ; + memset(n, 0, len * sizeof(size_t)) ; parse_prefix(n, &stk, ares, areslen, prefix) ; @@ -177,4 +177,4 @@ void parse_rename_interdependences(resolve_service_t *res, char const *prefix, r stralloc_free(&sa) ; free(wres) ; free(awres) ; -} \ No newline at end of file +} diff --git a/src/lib66/service/service_graph_build.c b/src/lib66/service/service_graph_build.c index 83ec07d0e2f13ab59e4714e3f0b14ba5ce7a89a8..97eaf32872922b2ee46934bba8628e294b882c3f 100644 --- a/src/lib66/service/service_graph_build.c +++ b/src/lib66/service/service_graph_build.c @@ -30,7 +30,7 @@ static void issupervised(char *store, resolve_service_t *ares, unsigned int ares ss_state_t ste = STATE_ZERO ; stralloc sa = STRALLOC_ZERO ; - memset(store, 0, strlen(str)) ; + memset(store, 0, strlen(str) * sizeof(char)) ; if (!sastr_clean_string(&sa, str)) log_dieu(LOG_EXIT_SYS, "clean string") ; @@ -93,7 +93,7 @@ void service_graph_build(graph_t *g, resolve_service_t *ares, unsigned int aresl if (pres->dependencies.ndepends && FLAGS_ISSET(flag, STATE_FLAGS_WANTUP)) { - char store[strlen(pres->sa.s + pres->dependencies.depends) + 1] ; + char store[strlen(pres->sa.s + pres->dependencies.depends) + 1 * pres->dependencies.ndepends] ; if (FLAGS_ISSET(flag, STATE_FLAGS_ISSUPERVISED)) { @@ -112,7 +112,7 @@ void service_graph_build(graph_t *g, resolve_service_t *ares, unsigned int aresl if (pres->dependencies.nrequiredby && FLAGS_ISSET(flag, STATE_FLAGS_WANTDOWN)) { - char store[strlen(pres->sa.s + pres->dependencies.requiredby) + 1] ; + char store[strlen(pres->sa.s + pres->dependencies.requiredby) + 1 * pres->dependencies.nrequiredby] ; if (FLAGS_ISSET(flag, STATE_FLAGS_ISSUPERVISED)) { diff --git a/src/lib66/svc/svc_launch.c b/src/lib66/svc/svc_launch.c index 6233ca89ee80ab775afaa983568862e378c421ae..56ee08123a7e081fc8800b63bd46010f9aeee666 100644 --- a/src/lib66/svc/svc_launch.c +++ b/src/lib66/svc/svc_launch.c @@ -14,7 +14,7 @@ #include <string.h> #include <stdint.h> -#include <unistd.h> // access +#include <unistd.h> // access, unlink #include <errno.h> #include <signal.h> #include <sys/types.h> @@ -281,7 +281,7 @@ static int async_deps(pidservice_t *apids, unsigned int i, unsigned int what, ss if (x.revents & IOPAUSE_READ) { - memset(buf, 0, sizeof(buf)) ; + memset(buf, 0, ((UINT_FMT*2)*SS_MAX_SERVICE + 1) * sizeof(char)) ; r = read(apids[i].pipe[0], buf, sizeof(buf)) ; if (r < 0) log_dieu(LOG_EXIT_SYS, "read from pipe") ; @@ -544,10 +544,10 @@ static int doit(pidservice_t *sv, unsigned int what, tain *deadline) if (data[1] == 'r') { /** oneshot service are not handled automatically by - * s6-supervise. Signal is restart, so let it down first + * s6-supervise. Signal is restart, so let it down first * and force to bring it up again .*/ - - log_trace("sending ", "up to: ", scandir) ; + + log_trace("sending up to: ", scandir) ; char const *newargv[11] ; unsigned int m = 0 ; @@ -569,13 +569,13 @@ static int doit(pidservice_t *sv, unsigned int what, tain *deadline) log_warnusys_return(LOG_EXIT_ZERO, "wait for s6-sudo") ; if (WIFSIGNALED(wstat) && WEXITSTATUS(wstat)) - return WIFSIGNALED(wstat) ? WTERMSIG(wstat) : WEXITSTATUS(wstat) ; - } + return WIFSIGNALED(wstat) ? WTERMSIG(wstat) : WEXITSTATUS(wstat) ; + } + + return WEXITSTATUS(wstat) ; - return WEXITSTATUS(wstat) ; - } else { - + return WIFSIGNALED(wstat) ? WTERMSIG(wstat) : WEXITSTATUS(wstat) ; }