diff options
author | Alexander Chernavin <achernavin@netgate.com> | 2023-11-23 11:36:09 +0000 |
---|---|---|
committer | Matthew Smith <mgsmith@netgate.com> | 2023-11-27 18:53:43 +0000 |
commit | 1f4023d55d7a9c777465d24065e91fc076602fb0 (patch) | |
tree | 413836dd691b4fac95f0bbd7575bc5125e5567f3 /src | |
parent | a2be1cffbea8a41bb9cdfdfbfa4c530f345b16a9 (diff) |
bfd: fix buffer leak when cannot send periodic packets
When a periodic BFD packet cannot be sent because the interface is
disabled, the allocated buffer needs to be freed. This currently will
occur for IPv4 sessions. However, buffers will leak for IPv6 sessions as
in this case, bfd_transport_control_frame() and bfd_transport_udp6()
will not indicate failure.
With this fix, stop always returning success in bfd_transport_udp6() and
start returning the actual return value.
Type: fix
Change-Id: I5fa4d9206e32cccae3053ef24966d80e2022fc81
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/vnet/bfd/bfd_udp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vnet/bfd/bfd_udp.c b/src/vnet/bfd/bfd_udp.c index 2ba43a309d1..bf403dfe866 100644 --- a/src/vnet/bfd/bfd_udp.c +++ b/src/vnet/bfd/bfd_udp.c @@ -483,7 +483,7 @@ bfd_transport_udp6 (vlib_main_t *vm, vlib_node_runtime_t *rt, u32 bi, is_echo ? &bm->tx_echo_counter : &bm->tx_counter); } - return 1; + return rv; } static bfd_session_t * |