]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
more assertions and cleanups
authorAlan T. DeKok <aland@freeradius.org>
Mon, 23 Oct 2017 14:41:34 +0000 (10:41 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 23 Oct 2017 16:38:43 +0000 (12:38 -0400)
src/modules/rlm_radius/rlm_radius_udp.c

index 6c4479792cade5ec58fd5deba9bcf9244113ff6e..941abb8fb403b748001abbb57007bad550b20fb8 100644 (file)
@@ -489,11 +489,15 @@ static void state_transition(rlm_radius_udp_request_t *u, rlm_radius_request_sta
                break;
 
        case PACKET_STATE_RESUMABLE:
+               rad_assert(u->rr == NULL);
+               rad_assert(u->c == NULL);
                if (u->timer.ev) (void) fr_event_timer_delete(u->thread->el, &u->timer.ev);
                unlang_resumable(u->link->request);
                break;
 
        case PACKET_STATE_FINISHED:
+               rad_assert(u->rr == NULL);
+               rad_assert(u->c == NULL);
                if (u->timer.ev) (void) fr_event_timer_delete(u->thread->el, &u->timer.ev);
                break;
 
@@ -1897,7 +1901,8 @@ static int status_udp_request_free(rlm_radius_udp_request_t *u)
         */
        if (u->timer.ev) (void) fr_event_timer_delete(u->thread->el, &u->timer.ev);
 
-       (void) rr_track_delete(u->c->id, u->rr);
+       if (u->rr) (void) rr_track_delete(u->c->id, u->rr);
+       u->rr = NULL;
 
        return 0;
 }