aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>2002-10-30 20:10:40 +0000
committerSam Hartman <hartmans@mit.edu>2002-10-30 20:10:40 +0000
commitfa7e04c804fd9b716b72e51398926b0f9fafc72f (patch)
treee87d5701d8b10b439f7c02d8278c4167177090fc /src/lib
parenta02992087ea991bbd0793f21021f843af6df1ef7 (diff)
downloadkrb5-fa7e04c804fd9b716b72e51398926b0f9fafc72f.zip
krb5-fa7e04c804fd9b716b72e51398926b0f9fafc72f.tar.gz
krb5-fa7e04c804fd9b716b72e51398926b0f9fafc72f.tar.bz2
ticket: 1230
owner: tlyu status: open Ignore trailing nulls on incoming tr encoding to be compatible with bug in previous versions of krb5 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14946 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/krb5/krb/ChangeLog5
-rw-r--r--src/lib/krb5/krb/chk_trans.c14
2 files changed, 15 insertions, 4 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog
index 4376c9d..61704d2 100644
--- a/src/lib/krb5/krb/ChangeLog
+++ b/src/lib/krb5/krb/ChangeLog
@@ -1,3 +1,8 @@
+2002-10-30 Sam Hartman <hartmans@mit.edu>
+
+ * chk_trans.c: Ignore trailing null in transited encoding; older
+ versions of MIT code included this.
+
2002-10-28 Ken Raeburn <raeburn@mit.edu>
* get_in_tkt.c (conf_yes, conf_no): Now const. References
diff --git a/src/lib/krb5/krb/chk_trans.c b/src/lib/krb5/krb/chk_trans.c
index 4a38bf6..2c7e92f 100644
--- a/src/lib/krb5/krb/chk_trans.c
+++ b/src/lib/krb5/krb/chk_trans.c
@@ -315,17 +315,23 @@ check_realm_in_list (krb5_data *realm, void *data)
}
krb5_error_code
-krb5_check_transited_list (krb5_context ctx, const krb5_data *trans,
+krb5_check_transited_list (krb5_context ctx, const krb5_data *trans_in,
const krb5_data *crealm, const krb5_data *srealm)
{
+ krb5_data trans;
struct check_data cdata;
krb5_error_code r;
+ trans.length = trans_in->length;
+ trans.data = (char *) trans_in->data;
+ if (trans.length&&( trans.data[trans.length-1] == NULL))
+ trans.length--;
+
Tprintf (("krb5_check_transited_list(trans=\"%.*s\", crealm=\"%.*s\", srealm=\"%.*s\")\n",
- (int) trans->length, trans->data,
+ (int) translength, trans.data,
(int) crealm->length, crealm->data,
(int) srealm->length, srealm->data));
- if (trans->length == 0)
+ if (trans.length == 0)
return 0;
r = krb5_walk_realm_tree (ctx, crealm, srealm, &cdata.tgs,
KRB5_REALM_BRANCH_CHAR);
@@ -347,7 +353,7 @@ krb5_check_transited_list (krb5_context ctx, const krb5_data *trans,
}
#endif
cdata.ctx = ctx;
- r = foreach_realm (check_realm_in_list, &cdata, crealm, srealm, trans);
+ r = foreach_realm (check_realm_in_list, &cdata, crealm, srealm, &trans);
krb5_free_realm_tree (ctx, cdata.tgs);
return r;
}