diff options
Diffstat (limited to 'src/lib/gssapi')
| -rw-r--r-- | src/lib/gssapi/krb5/init_sec_context.c | 15 |
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 */ |
