diff options
author | Greg Hudson <ghudson@mit.edu> | 2014-01-16 11:32:10 -0500 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2014-01-17 15:58:08 -0500 |
commit | 6bdaa746fec1cf29adcbe5b8e65c4b8993770b84 (patch) | |
tree | 7179781119c5c26633b0bbca4a4bb11cc85c62e1 | |
parent | 7dad0bee30fbbde8cfc0eacd2d1487c198a004a1 (diff) | |
download | krb5-6bdaa746fec1cf29adcbe5b8e65c4b8993770b84.tar.gz krb5-6bdaa746fec1cf29adcbe5b8e65c4b8993770b84.tar.xz krb5-6bdaa746fec1cf29adcbe5b8e65c4b8993770b84.zip |
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.
ticket: 7822 (new)
target_version: 1.12.2
tags: pullup
-rw-r--r-- | 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 50ede704d7..fb72396ce2 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) { |