diff options
Diffstat (limited to 'utils/idmapd/cfg.c')
-rw-r--r-- | utils/idmapd/cfg.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/utils/idmapd/cfg.c b/utils/idmapd/cfg.c index b22a7c9..16d392a 100644 --- a/utils/idmapd/cfg.c +++ b/utils/idmapd/cfg.c @@ -487,8 +487,10 @@ conf_get_list (char *section, char *tag) if (!node) goto cleanup; node->field = strdup (field); - if (!node->field) + if (!node->field) { + free(node); goto cleanup; + } TAILQ_INSERT_TAIL (&list->fields, node, link); } free (liststr); @@ -523,8 +525,10 @@ conf_get_tag_list (char *section) if (!node) goto cleanup; node->field = strdup (cb->tag); - if (!node->field) + if (!node->field) { + free(node); goto cleanup; + } TAILQ_INSERT_TAIL (&list->fields, node, link); } return list; @@ -708,7 +712,7 @@ conf_remove (int transaction, char *section, char *tag) return 0; fail: - if (node->section) + if (node && node->section) free (node->section); if (node) free (node); |