]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
rlm_radius_udp: check_for_zombie does not nuke u->rr
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 4 Mar 2020 01:24:40 +0000 (19:24 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 4 Mar 2020 14:33:09 +0000 (08:33 -0600)
src/modules/rlm_radius/rlm_radius_udp.c

index 0dcf242a11eb1d459e0b0820f96608eeb773d88d..0de2a6de3521956d3434a807685b5223c50b29f1 100644 (file)
@@ -1286,13 +1286,11 @@ static void request_timeout(fr_event_list_t *el, fr_time_t now, void *uctx)
        udp_result_t            *r = talloc_get_type_abort(treq->rctx, udp_result_t);
        REQUEST                 *request = treq->request;
 
+       rad_assert(u->rr);
        rad_assert(treq->tconn);
 
        h = talloc_get_type_abort(treq->tconn->conn->h, udp_handle_t);
 
-       /*
-        *      This call may nuke u->rr
-        */
        if (!u->status_check) {
                check_for_zombie(el, treq->tconn, now);
        /*
@@ -1303,11 +1301,6 @@ static void request_timeout(fr_event_list_t *el, fr_time_t now, void *uctx)
                u->num_replies = 0;
        }
 
-       /*
-        *      Rely on someone else to do the retransmissions.
-        */
-       if (!u->rr) return;
-
        switch (fr_retry_next(&u->retry, now)) {
        /*
         *      Queue the request for retransmission.