Apparently something about those files being a couple hundered megabytes triggered the server to eat memory and cpu and generate<TIMEOUT> errors, no available thread, and core dumps. I have attached the probable locations of the (patched) segv's. #! /bin/sh /usr/share/dpatch/dpatch-run ## 310-rlm_exec-nullchecks.dpatch by <joe@nameserver3.ttec.com> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad freeradius-2.0.0~/src/modules/rlm_exec/rlm_exec.c freeradius-2.0.0/src/modules/rlm_exec/rlm_exec.c --- freeradius-2.0.0~/src/modules/rlm_exec/rlm_exec.c 2005-12-22 09:40:30.000000000 -0500 +++ freeradius-2.0.0/src/modules/rlm_exec/rlm_exec.c 2006-01-24 18:35:58.000000000 -0500 @@ -281,6 +281,13 @@ VALUE_PAIR *answer; rlm_exec_t *inst = (rlm_exec_t *) instance; + if (!inst || !request) { + radlof(L_ERR, "%s: %s() line: %d , a very bad thing happened", + __FILE__, __func__, __LINE__); + return RLM_MODULE_NOOP; + } + + /* * We need a program to execute. */ @@ -294,8 +301,10 @@ * See if we're supposed to execute it now. */ if (!((inst->packet_code == 0) || - (request->packet->code == inst->packet_code) || - (request->reply->code == inst->packet_code) || + (request->packet && + request->packet->code == inst->packet_code) || + (request->reply && + request->reply->code == inst->packet_code) || (request->proxy && (request->proxy->code == inst->packet_code)) || (request->proxy_reply && #! /bin/sh /usr/share/dpatch/dpatch-run ## 300-request_procces-nosend.dpatch by <joe@nameserver3.ttec.com> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad freeradius-2.0.0~pre0~cvs20051222-0-JM~/src/main/request_process.c freeradius-2.0.0~pre0~cvs20051222-0-JM/src/main/request_process.c --- freeradius-2.0.0~pre0~cvs20051222-0-JM~/src/main/request_process.c 2005-12-28 14:47:37.000000000 -0500 +++ freeradius-2.0.0~pre0~cvs20051222-0-JM/src/main/request_process.c 2006-01-24 17:41:13.000000000 -0500 @@ -559,6 +559,7 @@ * suppress packets which aren't supposed to be sent over * the wire, or to be delayed. */ + if (request && request->listener && request->listener->send) request->listener->send(request->listener, request); /* #! /bin/sh /usr/share/dpatch/dpatch-run ## 320-rad_account-replynull.dpatch by <joe@nameserver3.ttec.com> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad freeradius-2.0.0~/src/main/acct.c freeradius-2.0.0/src/main/acct.c --- freeradius-2.0.0~/src/main/acct.c 2006-01-24 20:51:05.000000000 -0500 +++ freeradius-2.0.0/src/main/acct.c 2006-01-24 22:35:24.000000000 -0500 @@ -152,7 +152,8 @@ */ case RLM_MODULE_OK: case RLM_MODULE_UPDATED: - request->reply->code = PW_ACCOUNTING_RESPONSE; + if (request->reply) + request->reply->code = PW_ACCOUNTING_RESPONSE; break; /* * The module handled the request, don't reply.