From: Alan T. DeKok Date: Sun, 10 May 2009 10:49:33 +0000 (+0200) Subject: Don't touch request after it was proxied X-Git-Tag: release_2_1_7~161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=711568a2ad71602e3fa677aff72aefe17b9f05ca;p=thirdparty%2Ffreeradius-server.git Don't touch request after it was proxied --- diff --git a/src/main/event.c b/src/main/event.c index 0880fd535de..bfbb7db156b 100644 --- a/src/main/event.c +++ b/src/main/event.c @@ -2019,6 +2019,13 @@ static int successfully_proxied_request(REQUEST *request) } request->home_pool = pool; +#ifdef WITH_COA + /* + * Once we've decided to proxy a request, we cannot send + * a CoA packet. So we free up any CoA packet here. + */ + request_free(&request->coa); +#endif /* * Remember that we sent the request to a Realm. */ @@ -2211,15 +2218,7 @@ static void request_post_handler(REQUEST *request) (request->packet->code != PW_STATUS_SERVER)) { int rcode = successfully_proxied_request(request); -#ifdef WITH_COA - /* - * If we proxy it, we CANNOT originate a CoA - * request at the same time. - */ - if (rcode != 0) request_free(&request->coa); -#endif - - if (rcode == 1) return; + if (rcode == 1) return; /* request is invalid */ /* * Failed proxying it (dead home servers, etc.)