diff --git a/expander.c b/expander.c index 165fbe7..8ed517d 100644 --- a/expander.c +++ b/expander.c @@ -1162,6 +1162,14 @@ expander_freeall(struct bgpq_expander *expander) { while (!STAILQ_EMPTY(&expander->macroses)) { struct sx_slentry *n1 = STAILQ_FIRST(&expander->macroses); STAILQ_REMOVE_HEAD(&expander->macroses, entries); + free(n1->text); + free(n1); + } + + while (!STAILQ_EMPTY(&expander->rsets)) { + struct sx_slentry *n1 = STAILQ_FIRST(&expander->rsets); + STAILQ_REMOVE_HEAD(&expander->rsets, entries); + free(n1->text); free(n1); } diff --git a/sx_slentry.c b/sx_slentry.c index 642bd70..ad73b66 100644 --- a/sx_slentry.c +++ b/sx_slentry.c @@ -40,8 +40,7 @@ sx_slentry_new(char *t) memset(e, 0, sizeof(struct sx_slentry)); - if (t) - e->text = strdup(t); + e->text = strdup(t); return e; } @@ -55,6 +54,7 @@ sx_tentry_new(char *t) return NULL; memset(te, 0, sizeof(struct sx_tentry)); + te->text = strdup(t); return te;