[12047] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

[krbdev.mit.edu #6930] segfault when unloading libraries on old O/S

daemon@ATHENA.MIT.EDU (Arlene Berry" via RT)
Thu Jul 21 16:30:00 2011

Mail-followup-to: rt@krbdev.mit.edu
mail-copies-to: never
From: ""Arlene Berry" via RT" <rt-comment@krbdev.MIT.EDU>
In-Reply-To: <rt-6930@krbdev.mit.edu>
Message-ID: <rt-6930-34181.7.44831164893164@krbdev.mit.edu>
To: "'AdminCc of krbdev.mit.edu Ticket #6930'":;"'AdminCc of krbdev.mit.edu Ticket #6930'":;@MIT.EDU
Date: Thu, 21 Jul 2011 16:29:57 -0400 (EDT)
Reply-To: rt-comment@krbdev.MIT.EDU
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krb5-bugs-bounces@mit.edu

We've had this in our local source for a long time and it's to prevent a segfault when unloading libraries on RHEL 2.1.  I don't know whether anything else needs it.  The original description and patch are below.

"There must be a bug in the loader on RHEL 2.1. libcom_err's destructor is sometimes (not always) called before libgssapi_krb5's destructor. This causes libgssapi_krb5 to look at the already freed global table.

The fix is to NULL out et_list once it is freed, so that even if libgssapi_krb5's destructor is called afterwards, it will not look at the list."


Index: src/util/et/error_message.c
===================================================================
--- src/util/et/error_message.c	(revision 25023)
+++ src/util/et/error_message.c	(working copy)
@@ -81,6 +81,7 @@
         enext = e->next;
         free(e);
     }
+    et_list = NULL;
     k5_mutex_unlock(&et_list_lock);
     k5_mutex_destroy(&et_list_lock);
     terminated = 1;


_______________________________________________
krb5-bugs mailing list
krb5-bugs@mit.edu
https://mailman.mit.edu/mailman/listinfo/krb5-bugs

home help back first fref pref prev next nref lref last post