- UCI_TRAP_SAVE(ctx, error);
- package->n_section++;
- section = (struct uci_section *) uci_malloc(ctx, sizeof(struct uci_section));
- section->package = package;
- uci_list_init(§ion->list);
- uci_list_init(§ion->options);
- section->type = uci_strdup(ctx, type);
- if (name && name[0])
- section->name = uci_strdup(ctx, name);
- else
- asprintf(§ion->name, "cfg%d", package->n_section);
- uci_list_add(&package->sections, §ion->list);
- UCI_TRAP_RESTORE(ctx);
+ uci_foreach_element_safe(&s->options, tmp, o) {
+ uci_free_option(uci_to_option(o));
+ }
+ uci_free_element(&s->e);
+}