From: Alan T. DeKok Date: Thu, 21 Oct 2010 13:09:11 +0000 (+0200) Subject: More checks on handler_tree X-Git-Tag: release_2_1_11~224 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76dacb6d48052893041062d1037ddcddfe829286;p=thirdparty%2Ffreeradius-server.git More checks on handler_tree Use the pointer if it exists, not if debug_flag is set --- diff --git a/src/modules/rlm_eap/mem.c b/src/modules/rlm_eap/mem.c index f0426197c56..db4c3fa65d9 100644 --- a/src/modules/rlm_eap/mem.c +++ b/src/modules/rlm_eap/mem.c @@ -127,7 +127,7 @@ EAP_HANDLER *eap_handler_alloc(rlm_eap_t *inst) handler = rad_malloc(sizeof(EAP_HANDLER)); memset(handler, 0, sizeof(EAP_HANDLER)); - if (fr_debug_flag && inst->handler_tree) { + if (inst->handler_tree) { PTHREAD_MUTEX_LOCK(&(inst->handler_mutex)); rbtree_insert(inst->handler_tree, handler); PTHREAD_MUTEX_UNLOCK(&(inst->handler_mutex)); @@ -190,6 +190,8 @@ static void check_handler(void *data) return; } + if (!check->inst->handler_tree) goto done; + PTHREAD_MUTEX_LOCK(&(check->inst->handler_mutex)); if (!rbtree_finddata(check->inst->handler_tree, check->handler)) { goto done; @@ -425,7 +427,7 @@ int eaplist_add(rlm_eap_t *inst, EAP_HANDLER *handler) /* * Catch Access-Challenge without response. */ - if (fr_debug_flag) { + if (inst->handler_tree) { check_handler_t *check = rad_malloc(sizeof(*check)); check->inst = inst;