]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
If we can't encode a packet, delete it from the list
authorAlan T. DeKok <aland@freeradius.org>
Fri, 14 Aug 2015 19:42:06 +0000 (21:42 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 14 Aug 2015 19:42:06 +0000 (21:42 +0200)
src/main/radclient.c

index 33af6647d152eacc3c90124521237ca77cc877eb..016e56037354285ffaf9c9e3bec2f595121ecd24 100644 (file)
@@ -974,6 +974,9 @@ static int send_one_packet(rc_request_t *request)
         */
        if (rad_send(request->packet, NULL, secret) < 0) {
                REDEBUG("Failed to send packet for ID %d", request->packet->id);
+               deallocate_id(request);
+               request->done = true;
+               return -1;
        }
 
        fr_packet_header_print(fr_log_fp, request->packet, false);
@@ -1541,7 +1544,10 @@ int main(int argc, char **argv)
                                /*
                                 *      Send the current packet.
                                 */
-                               send_one_packet(this);
+                               if (send_one_packet(this) < 0) {
+                                       talloc_free(this);
+                                       break;
+                               }
 
                                /*
                                 *      Wait a little before sending