summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/gssapi')
-rw-r--r--src/lib/gssapi/krb5/init_sec_context.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/lib/gssapi/krb5/init_sec_context.c b/src/lib/gssapi/krb5/init_sec_context.c
index a62a286d6..9f3c80d1c 100644
--- a/src/lib/gssapi/krb5/init_sec_context.c
+++ b/src/lib/gssapi/krb5/init_sec_context.c
@@ -72,8 +72,14 @@ make_ap_req(krb5_gss_cred_id_t cred,
/* fill in the necessary fields in creds */
memset((char *) &creds, 0, sizeof(creds));
- creds.client = cred->princ;
- creds.server = server;
+
+ code = krb5_copy_principal(cred->princ, &creds.client);
+ if (code)
+ return code;
+
+ code = krb5_copy_principal(server, &creds.server);
+ if (code)
+ return code;
creds.times.endtime = *endtime;
@@ -91,11 +97,6 @@ make_ap_req(krb5_gss_cred_id_t cred,
/* free stuff which was created */
- /* XXXX There's a bug in krb5 here, but I have no clue what it is.
- This is a workaround. */
- if (creds.client == cred->princ)
- creds.client = NULL;
-
krb5_free_cred_contents(&creds);
/* build up the token */