* init_ctx.c (krb5_free_context): Set field pointers to NULL after freeing
authorKen Raeburn <raeburn@mit.edu>
Fri, 18 Jun 1999 22:51:40 +0000 (22:51 +0000)
committerKen Raeburn <raeburn@mit.edu>
Fri, 18 Jun 1999 22:51:40 +0000 (22:51 +0000)
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

src/lib/krb5/krb/ChangeLog
src/lib/krb5/krb/init_ctx.c

index b798f3c948af623493eab78f164b444c2401a6b0..77a101ed07fb48fd1f6302d6df015ca0bf39ef52 100644 (file)
@@ -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
index a61bf708e44e5a7e07cef05ba9aa7680c50ed7a7..2d875924179086b1fb2104d48acb03a6c242d27d 100644 (file)
@@ -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);