Go to file
Philippe Guibert 6855bf2232 bgpd: fix bgp evpn memory leaks when adj-rib-in is disabled
Some bgp evpn memory contexts are not freed at the end of the bgp
process.

> =================================================================
> ==1208677==ERROR: LeakSanitizer: detected memory leaks
>
> Direct leak of 96 byte(s) in 2 object(s) allocated from:
>     #0 0x7f93ad4b4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
>     #1 0x7f93ace77233 in qcalloc lib/memory.c:106
>     #2 0x563bb68f4df1 in process_type5_route bgpd/bgp_evpn.c:5084
>     #3 0x563bb68fb663 in bgp_nlri_parse_evpn bgpd/bgp_evpn.c:6302
>     #4 0x563bb69ea2a9 in bgp_nlri_parse bgpd/bgp_packet.c:347
>     #5 0x563bb69f7716 in bgp_update_receive bgpd/bgp_packet.c:2482
>     #6 0x563bb6a04d3b in bgp_process_packet bgpd/bgp_packet.c:4091
>     #7 0x7f93acf8082d in event_call lib/event.c:1996
>     #8 0x7f93ace48931 in frr_run lib/libfrr.c:1232
>     #9 0x563bb6880ae1 in main bgpd/bgp_main.c:557
>     #10 0x7f93ac829d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Actually, the bgp evpn context may noy be used if adj rib in is unused.
This may lead to memory leaks. Fix this by freeing the context in those
corner cases.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2025-01-21 13:48:36 +01:00
.github tests: ci: add ARM to docker based CI test 2025-01-18 01:59:47 +00:00
alpine docker: Set ABUILD_APK_INDEX_OPTS for frr build 2024-06-14 16:33:32 +03:00
babeld babel: Clean babel related config on daemon stop 2025-01-02 13:15:45 +02:00
bfdd Merge pull request #16987 from opensourcerouting/bfd-echo-sock 2024-11-26 08:51:07 -05:00
bgpd bgpd: fix bgp evpn memory leaks when adj-rib-in is disabled 2025-01-21 13:48:36 +01:00
debian Merge pull request #17375 from opensourcerouting/fix/use_pcre2 2024-11-18 12:34:18 -05:00
doc Merge pull request #17882 from LabNConsulting/chopps/doc-update-mgmtd 2025-01-20 13:29:37 -06:00
docker docker: add ubuntu24-ci docker image support 2025-01-12 02:48:29 +00:00
eigrpd *: Modify agentx to be allowed to be called 2024-05-10 10:16:29 -04:00
fpm fpm: Allow max fpm message size to float based on ecmp 2024-10-11 09:37:37 -04:00
gdb lib: add simplified native msg support 2023-12-26 08:34:56 -05:00
grpc build: throw in a few more XREF_SETUP 2024-05-09 18:02:49 +02:00
include isisd: vlan-subif isis neighbor 2024-08-01 09:09:35 +08:00
isisd lib, isisd: Move DEFAULT_SRV6_IFNAME to global srv6.h header 2025-01-18 10:28:49 +00:00
ldpd ldpd: free previous config if it wasn't applied 2024-10-16 13:30:25 +02:00
lib Merge pull request #16894 from wenwang00/project-phoenixwing-ysj 2025-01-20 09:20:15 +01:00
m4 m4: Update ax_lua to support Lua 5.4 2025-01-13 14:13:36 +02:00
mgmtd mgmtd: testc: add listen for datastore notifications 2025-01-18 16:14:29 +00:00
mlag build: throw in a few more XREF_SETUP 2024-05-09 18:02:49 +02:00
nhrpd Merge pull request #16700 from louis-6wind/fix-nhrp-output 2024-11-28 17:16:24 +02:00
ospf6d ospf6d: guard a couple of debugs 2025-01-09 17:26:10 -06:00
ospfclient ospfclient: fix crash due to streamwriter garbage collect 2024-12-20 14:41:20 -05:00
ospfd ospfd: avoid the redundant timers 2025-01-10 08:51:40 +08:00
pathd pathd: Replace ctime_r() with time_to_string() 2024-12-20 17:58:49 +02:00
pbrd pbrd: fix vrf_unchanged which may depend on other seqs 2024-12-09 12:31:29 -05:00
pceplib Merge pull request #15215 from donaldsharp/pceplib_fixup 2024-01-25 09:59:59 +02:00
pimd Merge pull request #17776 from nabahr/group-rpf-mode 2025-01-15 10:20:24 -05:00
pkgsrc build: homologize path handling 2024-01-27 19:02:52 +01:00
python tools: Fix syntax raw parsing for make-foobar helper 2024-11-18 11:04:27 +02:00
qpb *: add XREF_SETUP() to libraries and utilites 2024-05-02 23:03:08 +02:00
redhat packaging: Use PCRE2 for .deb/.rpm builds 2024-11-08 08:50:54 +02:00
ripd lib: northbound/mgmtd: add backend model support 2025-01-14 18:48:59 +00:00
ripngd lib: northbound/mgmtd: add backend model support 2025-01-14 18:48:59 +00:00
sharpd Merge pull request #17445 from cscarpitta/fix/sharp-use-ipv6-max-bitlen 2024-11-17 14:19:58 +02:00
snapcraft bfdd: remove control socket obsolete code 2024-07-25 10:37:11 -03:00
staticd staticd: Add CLIs to show SRv6 static SIDs 2025-01-18 10:28:49 +00:00
tests topotests: add unified configuration 2025-01-21 13:48:36 +01:00
tools tools: fix regression in gen_northbound_callback tool 2025-01-20 06:01:59 +00:00
vrrpd vrrpd: iterate over all ancillary messages 2024-10-07 13:05:10 -03:00
vtysh vtysh: Add SRv6 static SIDs CLI to vtysh 2025-01-18 10:28:49 +00:00
watchfrr watchfrr: increase restart timer 20s -> 90s 2024-12-09 12:35:42 -05:00
yang Merge pull request #17882 from LabNConsulting/chopps/doc-update-mgmtd 2025-01-20 13:29:37 -06:00
zebra Merge pull request #17814 from donaldsharp/nhg_removal_in_some_situations 2025-01-17 17:31:19 +02:00
.clang-format *: Modify clang-format column limit to 100 2024-09-26 09:58:32 -04:00
.dockerignore docker: Make docker image on CentOS 7 2019-11-26 19:29:30 +00:00
.flake8 style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
.git-blame-ignore-revs tools: Add black formatting commit to .git-blame-ignore-revs 2024-04-28 12:50:51 +03:00
.gitignore python: add tool to expand typesafe definitions 2024-04-29 17:37:49 +02:00
.isort.cfg style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
.pylintrc style: add format checker config that matches FRR style standards 2023-04-18 05:18:26 -04:00
.travis.yml lib: libyang2 add missed conversion 2021-05-17 22:13:59 -04:00
bootstrap.sh build: turn on automake warnings (& symlinks) 2021-04-21 15:42:37 +02:00
buildtest.sh build: update packaging & docs for dir changes 2024-01-27 19:01:19 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac configure: Adopt for Lua 5.4 2025-01-13 16:34:14 +02:00
COPYING *: sort out & explain licenses used in FRR 2023-02-09 12:46:13 +01:00
Makefile.am build: homologize path handling 2024-01-27 19:02:52 +01:00
README.md doc: Fix the link that points to Slack invitation in README 2022-03-24 13:13:37 +02:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
version.h build: make builddir include path consistent 2021-04-21 15:42:33 +02:00

Icon

FRRouting

FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD and supports all modern CPU architectures.

FRR currently supports the following protocols:

  • BGP
  • OSPFv2
  • OSPFv3
  • RIPv1
  • RIPv2
  • RIPng
  • IS-IS
  • PIM-SM/MSDP
  • LDP
  • BFD
  • Babel
  • PBR
  • OpenFabric
  • VRRP
  • EIGRP (alpha)
  • NHRP (alpha)

Installation & Use

For source tarballs, see the releases page.

For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.

Instructions on building and installing from source for supported platforms may be found in the developer docs.

Once installed, please refer to the user guide for instructions on use.

Community

The FRRouting email list server is located here and offers the following public lists:

Topic List
Development dev@lists.frrouting.org
Users & Operators frog@lists.frrouting.org
Announcements announce@lists.frrouting.org

For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.

Contributing

FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.

We welcome and appreciate all contributions, no matter how small!

Security

To report security issues, please use our security mailing list:

security [at] lists.frrouting.org