summaryrefslogtreecommitdiffstats
path: root/utils/gssd/krb5_util.c
diff options
context:
space:
mode:
authorKevin Coffman <kwc@citi.umich.edu>2007-03-16 10:27:41 -0400
committerNeil Brown <neilb@suse.de>2007-03-19 09:47:37 +1100
commit3bfd8b18c743cc0908a70a7d401521250ade4776 (patch)
tree7aee0521ec7c04837868964c5ad24d9171ddb3e7 /utils/gssd/krb5_util.c
parenteeaf5bfbfe2b2a98de3c40b1c44c3f8e15102633 (diff)
downloadnfs-utils-3bfd8b18c743cc0908a70a7d401521250ade4776.tar.gz
nfs-utils-3bfd8b18c743cc0908a70a7d401521250ade4776.tar.xz
nfs-utils-3bfd8b18c743cc0908a70a7d401521250ade4776.zip
Don't leak keytab entries
Free keytab entries while processing keytab file. Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'utils/gssd/krb5_util.c')
-rw-r--r--utils/gssd/krb5_util.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
index 6af2869..cd777e4 100644
--- a/utils/gssd/krb5_util.c
+++ b/utils/gssd/krb5_util.c
@@ -485,6 +485,7 @@ gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt, char *kt_name)
printerr(0, "WARNING: Skipping keytab entry because "
"we failed to unparse principal name: %s\n",
error_message(code));
+ krb5_kt_free_entry(context, &kte);
continue;
}
printerr(2, "Processing keytab entry for principal '%s'\n",
@@ -510,6 +511,7 @@ gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt, char *kt_name)
#else
free(pname);
#endif
+ krb5_kt_free_entry(context, &kte);
retval = ENOMEM;
goto out;
}
@@ -533,6 +535,7 @@ gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt, char *kt_name)
#else
free(pname);
#endif
+ krb5_kt_free_entry(context, &kte);
retval = ENOMEM;
goto out;
}
@@ -546,6 +549,7 @@ gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt, char *kt_name)
#else
free(pname);
#endif
+ krb5_kt_free_entry(context, &kte);
retval = code;
goto out;
}
@@ -565,6 +569,7 @@ gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt, char *kt_name)
#else
free(pname);
#endif
+ krb5_kt_free_entry(context, &kte);
}
if ((code = krb5_kt_end_seq_get(context, kt, &cursor))) {