]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
don't write data on RECV packet or STATE CHANGE
authorAlan T. DeKok <aland@freeradius.org>
Sun, 12 Mar 2023 01:32:59 +0000 (20:32 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 14 Mar 2023 21:10:38 +0000 (17:10 -0400)
src/listen/bfd/proto_bfd.c

index 530e0087e2851c18817434378e205b67b831afe9..4ddc684775442cd4d8f712421e9d23e4cd227d7c 100644 (file)
@@ -296,12 +296,13 @@ static ssize_t mod_encode(UNUSED void const *instance, request_t *request, uint8
        fr_io_track_t           *track = talloc_get_type_abort(request->async->packet_ctx, fr_io_track_t);
        fr_io_address_t const   *address = track->address;
        fr_client_t const       *client;
+       bfd_wrapper_t const     *wrapper = (bfd_wrapper_t const *) request->packet->data;
 
        /*
         *      Process layer NAK, or "Do not respond".
         */
-       if (buffer_len == 1) {
-               return 1;
+       if ((buffer_len == 1) || (wrapper->type == BFD_WRAPPER_RECV_PACKET) || (wrapper->type == BFD_WRAPPER_STATE_CHANGE)) {
+               return 0;
        }
 
        client = address->radclient;