diff options
author | Ken Raeburn <raeburn@mit.edu> | 1999-06-18 22:51:40 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 1999-06-18 22:51:40 +0000 |
commit | e9a929d3fe5985ba2aaaf54da62021a8f6ae364a (patch) | |
tree | 19256a060a4059fb63159a6937e706991be278c1 | |
parent | 42f2bb053a18aad8273347f7c65531b6e6d51b95 (diff) | |
download | krb5-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
-rw-r--r-- | src/lib/krb5/krb/ChangeLog | 6 | ||||
-rw-r--r-- | src/lib/krb5/krb/init_ctx.c | 18 |
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); |