From 2b4678dab3a21c0be9fb48e76aa5a08f6a20aac7 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 13 Jul 1997 01:09:31 +0000 Subject: [PATCH] New function `krb5_config_file_free' git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2230 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/config_file.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/krb5/config_file.c b/lib/krb5/config_file.c index b9decb8af..e7bcc8721 100644 --- a/lib/krb5/config_file.c +++ b/lib/krb5/config_file.c @@ -145,6 +145,32 @@ krb5_config_parse_file (const char *fname, krb5_config_section **res) return 0; } +static void +free_binding (krb5_config_binding *b) +{ + krb5_config_binding *next_b; + + while (b) { + free (b->name); + if (b->type == STRING) + free (b->u.string); + else if (b->type == LIST) + free_binding (b->u.list); + else + abort (); + next_b = b->next; + free (b); + b = next_b; + } +} + +krb5_error_code +krb5_config_file_free (krb5_config_section *s) +{ + free_binding (s); + return 0; +} + static int print_list (FILE *f, krb5_config_binding *l, unsigned level); static int print_binding (FILE *f, krb5_config_binding *b, unsigned level); static int print_section (FILE *f, krb5_config_section *s, unsigned level);