summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2014-01-16 11:32:10 -0500
committerGreg Hudson <ghudson@mit.edu>2014-01-17 15:58:08 -0500
commit6bdaa746fec1cf29adcbe5b8e65c4b8993770b84 (patch)
tree7179781119c5c26633b0bbca4a4bb11cc85c62e1 /src
parent7dad0bee30fbbde8cfc0eacd2d1487c198a004a1 (diff)
downloadkrb5-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
Diffstat (limited to 'src')
-rw-r--r--src/util/et/error_message.c5
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) {