diff options
author | Tom Yu <tlyu@mit.edu> | 2002-10-31 00:38:34 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2002-10-31 00:38:34 +0000 |
commit | 806429bb86f2a1db6a7bad5cc82df9a198e09794 (patch) | |
tree | 996e7441c343a2b568ed7e86ab3d0006a53c5698 | |
parent | de480fabaa5f8a07084eb58ca39cf465bdbcb7ac (diff) | |
download | krb5-806429bb86f2a1db6a7bad5cc82df9a198e09794.zip krb5-806429bb86f2a1db6a7bad5cc82df9a198e09794.tar.gz krb5-806429bb86f2a1db6a7bad5cc82df9a198e09794.tar.bz2 |
pull up fix for NUL termination of transited field
ticket: 1230
version_reported: 1.2.6
target_version: 1.2.7
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-2-2-branch@14950 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r-- | src/kdc/ChangeLog | 6 | ||||
-rw-r--r-- | src/kdc/kdc_util.c | 4 | ||||
-rw-r--r-- | src/lib/krb5/krb/ChangeLog | 12 | ||||
-rw-r--r-- | src/lib/krb5/krb/chk_trans.c | 14 |
4 files changed, 30 insertions, 6 deletions
diff --git a/src/kdc/ChangeLog b/src/kdc/ChangeLog index a3d42ad..cc5023c 100644 --- a/src/kdc/ChangeLog +++ b/src/kdc/ChangeLog @@ -1,3 +1,9 @@ +2002-10-30 Sam Hartman <hartmans@mit.edu> + + * kdc_util.c (add_to_transited): Don't include trailing null in + transited encoding length; doing so breaks using codee + [pullup from trunk] + 2002-10-30 Tom Yu <tlyu@mit.edu> * do_as_req.c (process_as_req): Apply fix from Kevin Coffman to diff --git a/src/kdc/kdc_util.c b/src/kdc/kdc_util.c index 0bd745d..fa5b7da 100644 --- a/src/kdc/kdc_util.c +++ b/src/kdc/kdc_util.c @@ -806,7 +806,7 @@ add_to_transited(tgt_trans, new_trans, tgs, client, server) goto fail; } strcat(trans, current); - new_trans->length = strlen(trans) + 1; + new_trans->length = strlen(trans); strncpy(prev, exp, sizeof(prev) - 1); prev[sizeof(prev) - 1] = '\0'; @@ -834,7 +834,7 @@ add_to_transited(tgt_trans, new_trans, tgs, client, server) goto fail; } strcat(trans, realm); - new_trans->length = strlen(trans) + 1; + new_trans->length = strlen(trans); } retval = 0; diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog index 667a731..470ee9c 100644 --- a/src/lib/krb5/krb/ChangeLog +++ b/src/lib/krb5/krb/ChangeLog @@ -1,3 +1,15 @@ +2002-10-30 Tom Yu <tlyu@mit.edu> + + * chk_trans.c (krb5_check_transited_list): Style nit: check + character against '\0' not NULL. + [pullup from trunk] + +2002-10-30 Sam Hartman <hartmans@mit.edu> + + * chk_trans.c: Ignore trailing null in transited encoding; older + versions of MIT code included this. + [pullup from trunk] + 2002-08-12 Tom Yu <tlyu@mit.edu> * unparse.c (krb5_unparse_name_ext): Error out if passed a NULL diff --git a/src/lib/krb5/krb/chk_trans.c b/src/lib/krb5/krb/chk_trans.c index 4a38bf6..9997b20 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] == '\0')) + 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; } |