From 8a80d1a936d9cf476db7cd95a8824d8b6ea0306c Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Thu, 24 Jun 1999 17:19:51 +0000 Subject: [PATCH] (krb5_rd_cred): compare the sender's address as an addrport one git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6376 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/rd_cred.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/krb5/rd_cred.c b/lib/krb5/rd_cred.c index f3aa4f2fd..ab326d48c 100644 --- a/lib/krb5/rd_cred.c +++ b/lib/krb5/rd_cred.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 1999 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -91,12 +91,28 @@ krb5_rd_cred (krb5_context context, /* check sender address */ if (enc_krb_cred_part.s_address - && auth_context->remote_address - && !krb5_address_compare (context, + && auth_context->remote_address) { + krb5_address *a; + int cmp; + + ret = krb5_make_addrport (&a, auth_context->remote_address, - enc_krb_cred_part.s_address)) { - ret = KRB5KRB_AP_ERR_BADADDR; - goto out; + auth_context->remote_port); + if (ret) + goto out; + + + cmp = krb5_address_compare (context, + a, + enc_krb_cred_part.s_address); + + krb5_free_address (context, a); + free (a); + + if (cmp == 0) { + ret = KRB5KRB_AP_ERR_BADADDR; + goto out; + } } /* check receiver address */