From 3e3591b1a028b764ede6bcc11f11c12dd8cfa72a Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Thu, 24 Jun 1999 17:18:24 +0000 Subject: [PATCH] (krb5_get_forwarded_creds): get the local and remote address and add them to the krb-cred packet git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6374 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/get_for_creds.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/krb5/get_for_creds.c b/lib/krb5/get_for_creds.c index 48f963760..599cb98e2 100644 --- a/lib/krb5/get_for_creds.c +++ b/lib/krb5/get_for_creds.c @@ -167,8 +167,9 @@ krb5_get_forwarded_creds (krb5_context context, in_creds, &out_creds); krb5_free_addresses (context, &addrs); - if (ret) + if (ret) { return ret; + } memset (&cred, 0, sizeof(cred)); cred.pvno = 5; @@ -203,14 +204,30 @@ krb5_get_forwarded_creds (krb5_context context, if (enc_krb_cred_part.usec == NULL) { ret = ENOMEM; goto out4; - } + } *enc_krb_cred_part.usec = usec; - enc_krb_cred_part.s_address = NULL; /* XXX */ - enc_krb_cred_part.r_address = NULL; /* XXX */ + ret = krb5_make_addrport (&enc_krb_cred_part.s_address, + auth_context->local_address, + auth_context->local_port); + if (ret) + goto out4; + + ALLOC(enc_krb_cred_part.r_address, 1); + if (enc_krb_cred_part.r_address == NULL) { + ret = ENOMEM; + goto out4; + } + + ret = krb5_copy_address (context, auth_context->remote_address, + enc_krb_cred_part.r_address); + if (ret) + goto out4; /* fill ticket_info.val[0] */ + enc_krb_cred_part.ticket_info.len = 1; + krb_cred_info = enc_krb_cred_part.ticket_info.val; copy_EncryptionKey (&out_creds->session, &krb_cred_info->key);