krb5 commit [krb5-1.12]: Avoid assertion failure in error_message
Tom Yu
tlyu at MIT.EDU
Thu Jun 26 16:06:31 EDT 2014
https://github.com/krb5/krb5/commit/b1ace054ae9699b049ad1f47f5971a22bd3137ad
commit b1ace054ae9699b049ad1f47f5971a22bd3137ad
Author: Greg Hudson <ghudson at mit.edu>
Date: Thu Jan 16 11:32:10 2014 -0500
Avoid assertion failure in error_message
r17942 added a call to get_thread_buffer in the first part of
error_message, prior to the call to com_err_initialize. This can
cause an assertion failure from k5_getspecific if error_message is
called on a system error before any other com_err functions are
called. Move the initialization call earlier to prevent this.
(cherry picked from commit 6bdaa746fec1cf29adcbe5b8e65c4b8993770b84)
ticket: 7822
version_fixed: 1.12.2
status: resolved
src/util/et/error_message.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/util/et/error_message.c b/src/util/et/error_message.c
index 50ede70..fb72396 100644
--- a/src/util/et/error_message.c
+++ b/src/util/et/error_message.c
@@ -121,6 +121,9 @@ error_message(long code)
char *cp, *cp1;
const struct error_table *table;
+ if (CALL_INIT_FUNCTION(com_err_initialize))
+ return 0;
+
l_offset = (unsigned long)code & ((1<<ERRCODE_RANGE)-1);
offset = l_offset;
table_num = ((unsigned long)code - l_offset) & ERRCODE_MAX;
@@ -155,8 +158,6 @@ error_message(long code)
goto oops;
}
- if (CALL_INIT_FUNCTION(com_err_initialize))
- return 0;
k5_mutex_lock(&et_list_lock);
dprintf(("scanning list for %x\n", table_num));
for (e = et_list; e != NULL; e = e->next) {
More information about the cvs-krb5
mailing list