diff --git a/src/lib66/exec/ssexec_reconfigure.c b/src/lib66/exec/ssexec_reconfigure.c index 3823b14d5c259d60bd35e97873a42be5ef4f96f4..6c4d76ba6165727c5a2f426932426e3e9482ab0b 100644 --- a/src/lib66/exec/ssexec_reconfigure.c +++ b/src/lib66/exec/ssexec_reconfigure.c @@ -134,7 +134,7 @@ int ssexec_reconfigure(int argc, char const *const *argv, ssexec_t *info) info->opt_tree = 0 ; unsigned int m = 0 ; - int nargc = 2 + nservice + siglen ; + int nargc = 3 + nservice + siglen ; char const *prog = PROG ; char const *newargv[nargc] ; @@ -150,16 +150,17 @@ int ssexec_reconfigure(int argc, char const *const *argv, ssexec_t *info) newargv[m++] = name ; } - newargv[m++] = 0 ; + newargv[m] = 0 ; PROG = "stop" ; - e = ssexec_stop(nargc, newargv, info) ; + e = ssexec_stop(m, newargv, info) ; PROG = prog ; if (e) goto freed ; info->treename.len = 0 ; - auto_stra(&info->treename, tree) ; + if (!auto_stra(&info->treename, tree)) + log_die_nomem("stralloc") ; info->opt_tree = 1 ; } @@ -185,10 +186,10 @@ int ssexec_reconfigure(int argc, char const *const *argv, ssexec_t *info) newargv[m++] = name ; } - newargv[m++] = 0 ; + newargv[m] = 0 ; PROG= "start" ; - e = ssexec_start(--m, newargv, info) ; + e = ssexec_start(m, newargv, info) ; PROG = prog ; }