Add more free() to counter memory errors

This commit is contained in:
Job Snijders
2021-08-18 00:38:44 +00:00
parent 450286a010
commit 4a8dc682fd

View File

@@ -1146,6 +1146,7 @@ bgpq_prequest_freeall(struct bgpq_prequest *bpr) {
void
expander_freeall(struct bgpq_expander *expander) {
struct sx_tentry *var, *nxt;
// printf("starting to free all\n");
// seg fault here
@@ -1173,6 +1174,20 @@ expander_freeall(struct bgpq_expander *expander) {
free(n1);
}
for (var = RB_MIN(tentree, &expander->already); var != NULL; var = nxt) {
nxt = RB_NEXT(tentree, &expander->already, var);
RB_REMOVE(tentree, &expander->already, var);
free(var->text);
free(var);
}
for (var = RB_MIN(tentree, &expander->stoplist); var != NULL; var = nxt) {
nxt = RB_NEXT(tentree, &expander->stoplist, var);
RB_REMOVE(tentree, &expander->stoplist, var);
free(var->text);
free(var);
}
for (int i = 0; i < 65536; i++) {
if (expander->asn32s[i] != NULL) {
free(expander->asn32s[i]);