AZ(close(child_fds[1]));
child_fds[1] = -1;
+ assert(ev_listen == NULL);
e = ev_new();
assert(e != NULL);
e->fd = child_fds[0];
AZ(ev_add(mgt_evb, e));
ev_listen = e;
+ assert(ev_poker == NULL);
e = ev_new();
assert(e != NULL);
e->timeout = 3.0;
child_state = CH_STOPPING;
- if (ev_poker != NULL)
+ if (ev_poker != NULL) {
ev_del(mgt_evb, ev_poker);
+ free(ev_poker);
+ }
ev_poker = NULL;
printf("Clean child\n");
(void)e;
(void)what;
- if (ev_poker != NULL)
+ if (ev_poker != NULL) {
ev_del(mgt_evb, ev_poker);
+ free(ev_poker);
+ }
ev_poker = NULL;
r = wait4(-1, &status, WNOHANG, NULL);
heritage.fds[3] = -1;
}
- if (ev_listen != NULL)
+ if (ev_listen != NULL) {
ev_del(mgt_evb, ev_listen);
+ free(ev_listen);
+ }
ev_listen = NULL;
AZ(close(child_fds[0]));
if (mgt_cli_askchild(status, p,
"config.load %s %s\n", vp->name, vp->fname))
return (1);
- if (vp->active)
- if (mgt_cli_askchild(status, p,
+ free(*p);
+ if (vp->active &&
+ mgt_cli_askchild(status, p,
"config.use %s\n", vp->name, vp->fname))
return (1);
+ free(*p);
}
if (mgt_cli_askchild(status, p, "start\n"))
return (1);
+ free(*p);
+ *p = NULL;
return (0);
}