summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>1995-10-23 16:07:56 +0000
committerEzra Peisach <epeisach@mit.edu>1995-10-23 16:07:56 +0000
commit314868c108522bcb44e673c6d9ea3545d573d38c (patch)
tree31c0fecedf9213fae10f976ca899110fd9e2c88e
parent6ba9ba4297552a34732a3bed13d8d07595a426b6 (diff)
downloadkrb5-314868c108522bcb44e673c6d9ea3545d573d38c.tar.gz
krb5-314868c108522bcb44e673c6d9ea3545d573d38c.tar.xz
krb5-314868c108522bcb44e673c6d9ea3545d573d38c.zip
rd_req_dec.c (krb5_rd_req_decoded): For heirarchal cross-realm,
set the length after initializing string. rd_req.c (krb5_rd_req): If a new auth_context is created and then there is an error, make sure return pointer is not looking at freed memory. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6981 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/krb5/krb/ChangeLog10
-rw-r--r--src/lib/krb5/krb/rd_req.c4
-rw-r--r--src/lib/krb5/krb/rd_req_dec.c2
3 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog
index 453660d5c..4576a03b7 100644
--- a/src/lib/krb5/krb/ChangeLog
+++ b/src/lib/krb5/krb/ChangeLog
@@ -1,3 +1,13 @@
+Mon Oct 23 11:09:56 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
+
+ * rd_req_dec.c (krb5_rd_req_decoded): For heirarchal cross-realm,
+ set the length after initializing string.
+
+ * rd_req.c (krb5_rd_req): If a new auth_context is created
+ and then there is an error, make sure return pointer is not
+ looking at freed memory.
+
+
Fri Oct 6 22:04:42 1995 Theodore Y. Ts'o <tytso@dcl>
* Makefile.in: Remove ##DOS!include of config/windows.in.
diff --git a/src/lib/krb5/krb/rd_req.c b/src/lib/krb5/krb/rd_req.c
index 9ed6eb2c9..e46b3bd91 100644
--- a/src/lib/krb5/krb/rd_req.c
+++ b/src/lib/krb5/krb/rd_req.c
@@ -98,8 +98,10 @@ krb5_rd_req(context, auth_context, inbuf, server, keytab,
(void) krb5_kt_close(context, new_keytab);
cleanup_auth_context:
- if (new_auth_context && retval)
+ if (new_auth_context && retval) {
krb5_auth_con_free(context, new_auth_context);
+ *auth_context = NULL;
+ }
cleanup_request:
krb5_free_ap_req(context, request);
diff --git a/src/lib/krb5/krb/rd_req_dec.c b/src/lib/krb5/krb/rd_req_dec.c
index c5637d4c1..5167701d0 100644
--- a/src/lib/krb5/krb/rd_req_dec.c
+++ b/src/lib/krb5/krb/rd_req_dec.c
@@ -197,8 +197,8 @@ krb5_rd_req_decoded(context, auth_context, req, server, keytab,
* and the local realm.
*/
if (trans->tr_contents.data && trans->tr_contents.data[0]) {
- lrealm.length = strlen(lrealm.data);
krb5_get_default_realm(context, &(lrealm.data));
+ lrealm.length = strlen(lrealm.data);
retval = krb5_check_transited_list(context, &(trans->tr_contents),
realm, &lrealm);
free(lrealm.data);