aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2002-10-31 00:38:34 +0000
committerTom Yu <tlyu@mit.edu>2002-10-31 00:38:34 +0000
commit806429bb86f2a1db6a7bad5cc82df9a198e09794 (patch)
tree996e7441c343a2b568ed7e86ab3d0006a53c5698
parentde480fabaa5f8a07084eb58ca39cf465bdbcb7ac (diff)
downloadkrb5-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/ChangeLog6
-rw-r--r--src/kdc/kdc_util.c4
-rw-r--r--src/lib/krb5/krb/ChangeLog12
-rw-r--r--src/lib/krb5/krb/chk_trans.c14
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;
}