summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>1999-06-18 22:51:40 +0000
committerKen Raeburn <raeburn@mit.edu>1999-06-18 22:51:40 +0000
commite9a929d3fe5985ba2aaaf54da62021a8f6ae364a (patch)
tree19256a060a4059fb63159a6937e706991be278c1 /src
parent42f2bb053a18aad8273347f7c65531b6e6d51b95 (diff)
downloadkrb5-e9a929d3fe5985ba2aaaf54da62021a8f6ae364a.tar.gz
krb5-e9a929d3fe5985ba2aaaf54da62021a8f6ae364a.tar.xz
krb5-e9a929d3fe5985ba2aaaf54da62021a8f6ae364a.zip
* init_ctx.c (krb5_free_context): Set field pointers to NULL after freeing
targets, in case higher-level code retains pointers into the context structure. From Jeffrey Altman. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11523 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/krb/ChangeLog6
-rw-r--r--src/lib/krb5/krb/init_ctx.c18
2 files changed, 19 insertions, 5 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog
index b798f3c948..77a101ed07 100644
--- a/src/lib/krb5/krb/ChangeLog
+++ b/src/lib/krb5/krb/ChangeLog
@@ -1,3 +1,9 @@
+1999-06-18 Ken Raeburn <raeburn@mit.edu>
+
+ * init_ctx.c (krb5_free_context): Set field pointers to NULL after
+ freeing targets, in case higher-level code retains pointers into
+ the context structure. (From Jeffrey Altman.)
+
Thu May 13 17:31:34 1999 Theodore Y. Ts'o <tytso@mit.edu>
* init_ctx.c (krb5_init_context): Pass the context to
diff --git a/src/lib/krb5/krb/init_ctx.c b/src/lib/krb5/krb/init_ctx.c
index a61bf708e4..2d87592417 100644
--- a/src/lib/krb5/krb/init_ctx.c
+++ b/src/lib/krb5/krb/init_ctx.c
@@ -184,17 +184,25 @@ krb5_free_context(ctx)
krb5_free_ets(ctx);
krb5_os_free_context(ctx);
- if (ctx->in_tkt_ktypes)
+ if (ctx->in_tkt_ktypes) {
free(ctx->in_tkt_ktypes);
+ ctx->in_tkt_ktypes = 0;
+ }
- if (ctx->tgs_ktypes)
+ if (ctx->tgs_ktypes) {
free(ctx->tgs_ktypes);
+ ctx->tgs_ktypes = 0;
+ }
- if (ctx->default_realm)
+ if (ctx->default_realm) {
free(ctx->default_realm);
+ ctx->default_realm = 0;
+ }
- if (ctx->ser_ctx_count && ctx->ser_ctx)
- free(ctx->ser_ctx);
+ if (ctx->ser_ctx_count && ctx->ser_ctx) {
+ free(ctx->ser_ctx);
+ ctx->ser_ctx = 0;
+ }
ctx->magic = 0;
free(ctx);