The FRRouting Protocol Suite
Find a file
Keelan10 9dd86deaa7 sharpd: Set Callback Function for Memory Cleanup
Implement a callback function for memory cleanup of sharp_nh_tracker.
Specifically, set `sharp_nh_tracker_free` as the deletion function for the `sg.nhs` list.
This ensures proper cleanup of resources when elements are removed.

The ASan leak log for reference:

```
***********************************************************************************
Address Sanitizer Error detected in zebra_nht_resolution.test_verify_nh_resolution/r1.asan.sharpd.32320

=================================================================
==32320==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f4ee812ad28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28)
    #1 0x7f4ee7b291cc in qcalloc lib/memory.c:105
    #2 0x5582be672011 in sharp_nh_tracker_get sharpd/sharp_nht.c:36
    #3 0x5582be680b42 in watch_nexthop_v4_magic sharpd/sharp_vty.c:139
    #4 0x5582be680b42 in watch_nexthop_v4 sharpd/sharp_vty_clippy.c:192
    #5 0x7f4ee7aac0b1 in cmd_execute_command_real lib/command.c:978
    #6 0x7f4ee7aac575 in cmd_execute_command lib/command.c:1036
    #7 0x7f4ee7aac9f4 in cmd_execute lib/command.c:1203
    #8 0x7f4ee7bd50bb in vty_command lib/vty.c:594
    #9 0x7f4ee7bd5566 in vty_execute lib/vty.c:1357
    #10 0x7f4ee7bdde37 in vtysh_read lib/vty.c:2365
    #11 0x7f4ee7bc8dfa in event_call lib/event.c:1965
    #12 0x7f4ee7b0c3bf in frr_run lib/libfrr.c:1214
    #13 0x5582be671252 in main sharpd/sharp_main.c:188
    #14 0x7f4ee6f1bc86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86)

SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).
***********************************************************************************
```

Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
2023-11-15 11:59:02 +04:00
.github github: Add rebase label on PR if it's > 50 commits behind 2023-05-09 09:37:23 +03:00
alpine docker: Use openssl instead of libressl 2023-07-31 11:04:30 +03:00
babeld babeld: Cleanup vrf data structures on shutdown 2023-11-13 09:16:45 -05:00
bfdd *: Remove netlink headers from lib/zebra.h 2023-11-07 06:46:19 -05:00
bgpd Merge pull request #11800 from mxyns/bmp-locribmon 2023-11-14 08:27:45 -05:00
debian debian: Increase version for development version to be 9.2 2023-10-11 07:57:06 +03:00
doc Merge pull request #11800 from mxyns/bmp-locribmon 2023-11-14 08:27:45 -05:00
docker docker: Install the apk packages regardless of the platform 2023-07-31 11:05:15 +03:00
eigrpd lib: convert if_zapi_callbacks into actual hooks 2023-11-02 17:10:43 -07:00
fpm *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
gdb *: Rename thread.[ch] to event.[ch] 2023-03-24 08:32:16 -04:00
grpc *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
include bgpd,lib,sharpd,zebra: srv6 introduce multiple segs/SIDs in nexthop 2023-09-20 15:07:15 +02:00
isisd Merge pull request #14135 from squirrelking57/fix_isis_adj_level 2023-11-14 08:49:35 -05:00
ldpd lib: convert if_zapi_callbacks into actual hooks 2023-11-02 17:10:43 -07:00
lib Merge pull request #14796 from donaldsharp/ospf_bsd_double_whammy_no_whammy 2023-11-15 09:39:31 +02:00
m4 build: fix sed regex in Lua macro 2022-12-08 12:39:17 +01:00
mgmtd Merge pull request #14768 from idryzhov/mgmtd-base-xpath 2023-11-13 09:19:07 -05:00
mlag build: fix AM_LDFLAGS usage (and gcov) 2021-07-21 17:10:08 +02:00
nhrpd *: Remove netlink headers from lib/zebra.h 2023-11-07 06:46:19 -05:00
ospf6d Merge pull request #14787 from opensourcerouting/fix/ospf6d_cost_fixup 2023-11-14 08:56:16 -05:00
ospfclient *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospfd ospfd: Cleanup route-map memory 2023-11-13 09:16:45 -05:00
pathd pathd: rework debug pathd pcep command 2023-11-03 17:09:11 +01:00
pbrd pbrd: Cleanup zclient on shutdown 2023-11-13 09:15:43 -05:00
pceplib *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
pimd pimd: Free up link list on shutdown 2023-11-13 09:16:45 -05:00
pkgsrc mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -04:00
python [ospfd]: add support for RFC 5709 HMAC-SHA Auth 2023-09-16 07:38:23 +03:30
qpb mgmtd: Bringup MGMTD daemon and datastore module support 2023-03-21 22:08:32 -04:00
redhat redhat: Update frr.spec file with older releases and increase current version 2023-10-11 07:56:15 +03:00
ripd ripd: Cleanup memory on shutdown 2023-11-13 09:16:45 -05:00
ripngd ripngd: Cleanup memory on shutdown 2023-11-13 09:16:45 -05:00
sharpd sharpd: Set Callback Function for Memory Cleanup 2023-11-15 11:59:02 +04:00
snapcraft snapcraft: Use libyang 2.1.80 2023-07-20 21:46:38 +03:00
staticd *: Move distance related defines into their own header 2023-11-07 06:47:51 -05:00
tests Merge pull request #14135 from squirrelking57/fix_isis_adj_level 2023-11-14 08:49:35 -05:00
tools tools: suppress some reachable external lib "leaks" 2023-11-11 21:10:45 +01:00
vrrpd lib: convert if_zapi_callbacks into actual hooks 2023-11-02 17:10:43 -07:00
vtysh lib: mgmtd: fix debug cli commands and memleaks 2023-11-11 19:25:03 +01:00
watchfrr watchfrr: Extend ignore option to daemon being killed 2023-10-18 14:30:03 -04:00
yang bgpd: Enable enforce-first-as by default 2023-10-27 14:27:02 +03:00
zebra Merge pull request #14712 from yenlu-keith/teamd-es-id 2023-11-14 11:20:27 -05:00
.clang-format mgmtd: simplify xpath registries 2023-11-06 17:44:58 -05: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: Ignore mass renaming of topotests for git blame 2021-05-11 14:14:26 +03:00
.gitignore doc: configure: add configure option to generate .ccls file 2023-05-18 09:32:32 -04: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 *: manual SPDX License ID conversions 2023-02-09 14:09:07 +01:00
config.version.in build: carry --with-pkg-extra-version into tarballs 2018-10-24 15:11:50 +02:00
configure.ac *: Remove APPLE #defines from build 2023-11-07 06:46:19 -05:00
COPYING *: sort out & explain licenses used in FRR 2023-02-09 12:46:13 +01:00
Makefile.am build: clean up mgmtd lib protobuf make syntax 2023-03-27 16:44:27 -04: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