summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/rd_priv.c6
-rw-r--r--src/lib/krb5/krb/rd_safe.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/rd_priv.c b/src/lib/krb5/krb/rd_priv.c
index 5a3b1b7c9..00d454703 100644
--- a/src/lib/krb5/krb/rd_priv.c
+++ b/src/lib/krb5/krb/rd_priv.c
@@ -185,6 +185,12 @@ OLDDECLARG(krb5_data *, outbuf)
cleanup_mesg();
return KRB5KRB_AP_ERR_BADADDR;
}
+ if (recv_addr && privmsg_enc_part->r_address &&
+ !krb5_address_compare(recv_addr, privmsg_enc_part->r_address)) {
+ cleanup_data();
+ cleanup_mesg();
+ return KRB5KRB_AP_ERR_BADADDR;
+ }
if (retval = krb5_gen_replay_name(sender_addr, "_priv",
&replay.client)) {
cleanup_data();
diff --git a/src/lib/krb5/krb/rd_safe.c b/src/lib/krb5/krb/rd_safe.c
index 315570855..c2e297139 100644
--- a/src/lib/krb5/krb/rd_safe.c
+++ b/src/lib/krb5/krb/rd_safe.c
@@ -105,6 +105,11 @@ krb5_data *outbuf;
cleanup();
return KRB5KRB_AP_ERR_BADADDR;
}
+ if (recv_addr && message->r_address &&
+ !krb5_address_compare(recv_addr, message->r_address)) {
+ cleanup();
+ return KRB5KRB_AP_ERR_BADADDR;
+ }
if (retval = krb5_gen_replay_name(sender_addr, "_safe",
&replay.client)) {
cleanup();