diff options
author | Theodore Tso <tytso@mit.edu> | 1992-08-18 23:21:22 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1992-08-18 23:21:22 +0000 |
commit | 1d68b54d57acac7afe4aa686425259cb92d62eda (patch) | |
tree | f50d0bea05a0134e3a3aa1159dec5ef173c1e1d5 /src/lib/krb5/krb/sendauth.c | |
parent | ecd643d43e93c63bc562cddcd052fe87ea8d6ad6 (diff) | |
download | krb5-1d68b54d57acac7afe4aa686425259cb92d62eda.tar.gz krb5-1d68b54d57acac7afe4aa686425259cb92d62eda.tar.xz krb5-1d68b54d57acac7afe4aa686425259cb92d62eda.zip |
Make sure the right structures actually get copied instead of aliased, and
make sure everything gets freed on an error return.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@2330 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/sendauth.c')
-rw-r--r-- | src/lib/krb5/krb/sendauth.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/krb5/krb/sendauth.c b/src/lib/krb5/krb/sendauth.c index 30bd54e70..cb3180495 100644 --- a/src/lib/krb5/krb/sendauth.c +++ b/src/lib/krb5/krb/sendauth.c @@ -119,9 +119,12 @@ krb5_sendauth(/* IN */ if (!credsp) { if (!ccache) return(KRB5_NOCREDS_SUPPLIED); - creds.server = (krb5_principal) server; - if (retval = krb5_copy_principal(client, &creds.client)) + if (retval = krb5_copy_principal(server, &creds.server)) return(retval); + if (retval = krb5_copy_principal(client, &creds.client)) { + krb5_free_principal(creds.server); + return(retval); + } /* creds.times.endtime = 0; -- memset 0 takes care of this zero means "as long as possible" */ /* creds.keyblock.keytype = 0; -- as well as this. |