Signed-off-by: Daniel Golle <daniel@makrotopia.org>
void cgroups_free(void)
{
struct cgval *valp, *tmp;
+
avl_for_each_element_safe(&cgvals, valp, avl, tmp) {
avl_delete(&cgvals, &valp->avl);
free((void *)(valp->avl.key));
char **tmp;
/* we need to keep argv, envp and seccomp filter in child */
- if (parent) {
+ if (parent) { /* parent-only */
if (opts.ociseccomp) {
free(opts.ociseccomp->filter);
free(opts.ociseccomp);
free(*(tmp++));
free(opts.envp);
+ } else { /* child-only */
if (opts.ocibundle)
cgroups_free();
- };
+ }
free_rlimits();
free_sysctl();
free(opts.uidmap);
free(opts.gidmap);
free(opts.annotations);
+ free(opts.ocibundle);
free_hooklist(opts.hooks.createRuntime);
free_hooklist(opts.hooks.createContainer);
free_hooklist(opts.hooks.startContainer);