From: Steve Dickson <SteveD@redhat.com>
To: NeilBrown <neilb@suse.de>
Cc: NFS <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH - nfs-utils] gssd: don't krb5_free_context if krb5_init_context fails
Date: Mon, 25 Mar 2013 10:16:01 -0400 [thread overview]
Message-ID: <51505C21.4010006@RedHat.com> (raw)
In-Reply-To: <20130305085700.56921777@notabene.brown>
On 04/03/13 16:57, NeilBrown wrote:
>
> Most places that call krb5_init_context() abort cleanly on failure.
> However these two then try to free the non-existent context, which
> doesn't end well.
>
> Signed-off-by: NeilBrown <neilb@suse.de>
Committed....
steved.
>
> diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
> index aeb8f70..4befa72 100644
> --- a/utils/gssd/krb5_util.c
> +++ b/utils/gssd/krb5_util.c
> @@ -1212,9 +1212,9 @@ gssd_destroy_krb5_machine_creds(void)
> "cache '%s'\n", k5err, ple->ccname);
> }
> }
> + krb5_free_context(context);
> out:
> free(k5err);
> - krb5_free_context(context);
> }
>
> /*
> @@ -1257,7 +1257,7 @@ gssd_refresh_krb5_machine_credential(char *hostname,
> k5err = gssd_k5_err_msg(context, code);
> printerr(0, "ERROR: %s: %s while resolving keytab '%s'\n",
> __func__, k5err, keytabfile);
> - goto out;
> + goto out_free_context;
> }
>
> if (ple == NULL) {
> @@ -1272,7 +1272,7 @@ gssd_refresh_krb5_machine_credential(char *hostname,
> "in keytab %s for connection with host %s\n",
> __FUNCTION__, keytabfile, hostname);
> retval = code;
> - goto out;
> + goto out_free_kt;
> }
>
> ple = get_ple_by_princ(context, kte.principal);
> @@ -1288,14 +1288,15 @@ gssd_refresh_krb5_machine_credential(char *hostname,
> __FUNCTION__, pname ? pname : "<unparsable>",
> hostname);
> if (pname) k5_free_unparsed_name(context, pname);
> - goto out;
> + goto out_free_kt;
> }
> }
> retval = gssd_get_single_krb5_cred(context, kt, ple, 0);
> -out:
> - if (kt)
> - krb5_kt_close(context, kt);
> +out_free_kt:
> + krb5_kt_close(context, kt);
> +out_free_context:
> krb5_free_context(context);
> +out:
> free(k5err);
> return retval;
> }
>
prev parent reply other threads:[~2013-03-25 14:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-04 21:57 [PATCH - nfs-utils] gssd: don't krb5_free_context if krb5_init_context fails NeilBrown
2013-03-25 14:16 ` Steve Dickson [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51505C21.4010006@RedHat.com \
--to=steved@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).