From 05fa2cde8d3dfbd2a3fb4c636d13d5721fb654b8 Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Fri, 14 May 2010 11:35:11 +0200 Subject: [PATCH 5/9] Refactor krb5_finalize() --- src/providers/krb5/krb5_common.c | 39 ++++++++++++++++++++++++++----------- 1 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/providers/krb5/krb5_common.c b/src/providers/krb5/krb5_common.c index f038557..dfcb502 100644 --- a/src/providers/krb5/krb5_common.c +++ b/src/providers/krb5/krb5_common.c @@ -435,22 +435,19 @@ done: return ret; } -void krb5_finalize(struct tevent_context *ev, - struct tevent_signal *se, - int signum, - int count, - void *siginfo, - void *private_data) + +static errno_t remove_krb5_info_files(TALLOC_CTX *mem_ctx, const char *realm) { - char *realm = (char *)private_data; int ret; errno_t err; char *file; - file = talloc_asprintf(se, KDCINFO_TMPL, realm); + file = talloc_asprintf(mem_ctx, KDCINFO_TMPL, realm); if(file == NULL) { - sig_term(signum); + DEBUG(1, ("talloc_asprintf failed.\n")); + return ENOMEM; } + errno = 0; ret = unlink(file); if (ret == -1) { @@ -459,10 +456,10 @@ void krb5_finalize(struct tevent_context *ev, err, strerror(err))); } - errno = 0; - file = talloc_asprintf(se, KPASSWDINFO_TMPL, realm); + file = talloc_asprintf(mem_ctx, KPASSWDINFO_TMPL, realm); if(file == NULL) { - sig_term(signum); + DEBUG(1, ("talloc_asprintf failed.\n")); + return ENOMEM; } errno = 0; @@ -473,5 +470,23 @@ void krb5_finalize(struct tevent_context *ev, err, strerror(err))); } + return EOK; +} + +void krb5_finalize(struct tevent_context *ev, + struct tevent_signal *se, + int signum, + int count, + void *siginfo, + void *private_data) +{ + char *realm = (char *)private_data; + int ret; + + ret = remove_krb5_info_files(se, realm); + if (ret != EOK) { + DEBUG(1, ("remove_krb5_info_files failed.\n")); + } + sig_term(signum); } -- 1.6.6.1