summaryrefslogtreecommitdiffstats
path: root/ospfd (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #15333 from c-po/issue-14910Donatas Abraitis2024-02-091-0/+1
|\ | | | | ospfd: can not delete "segment-routing node-msd" when SR if off
| * ospfd: can not delete "segment-routing node-msd" when SR if offChristian Breunig2024-02-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | This fixes the initial implementation of commit 7743f2f8c00 ("OSPFd: Update Segment Routing PR following review") where it wsa not possible to remove the "segment-routing node-msd" CLI nodes via vtysh once segment-routing got disabled. Closes #14910 Signed-off-by: Christian Breunig <christian@breunig.cc>
* | ospfd: add support for "no router-info [<area|as>] command"Christian Breunig2024-02-081-2/+4
|/ | | | | | | | | | | | | | frr-reload.py will walk through all config contexts and prepend no to the CLI command. This requires that the vtysh shell code accepts a full command. To Reproduce vtysh -c "conf t" -c "router ospf" -c "router-info area" vtysh -c "conf t" -c "router ospf" -c "no router-info area" % Unknown command: no router-info area vtysh -c "conf t" -c "router ospf" -c "no router-info" Signed-off-by: Christian Breunig <christian@breunig.cc>
* *: use af-specific autocompletion for prefix-lists when possibleIgor Ryzhov2024-02-041-2/+2
| | | | Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* *: create a single registry of daemons' default port valuesMark Stapp2024-02-012-7/+0
| | | | | | | | Create a single registry of default port values that daemons are using. Most of these are vty ports, but there are some others for features like ospfapi and zebra FPM. Signed-off-by: Mark Stapp <mjs@labn.net>
* ospfd: fix GR state locationDavid Lamparter2024-01-272-36/+38
| | | | | | | | | This belongs in `/var/lib`, not `/var/run`. Use library facility to load/save, support previous path as fallback, and do proper fsync(). Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: fix `frr_daemon_info` indentationDavid Lamparter2024-01-271-5/+10
| | | | | | | | | | clang-format doesn't understand FRR_DAEMON_INFO is a long macro where laying out items semantically makes sense. (Also use only one `FRR_DAEMON_INFO(` in isisd so editors don't get confused with the mismatching `( ( )`. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* *: remove sys/stat.h from zebra.hDonald Sharp2024-01-091-0/+1
| | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* *: Remove Crypto openSSL define from zebra.hDonald Sharp2024-01-041-0/+5
| | | | | | | Only a couple of places use this. Move these to a better spot. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* ospfd: Fix opaque functab leak and opaque AS cleanup problemsAcee2023-12-202-31/+72
| | | | | | | | | | | 1. Fix ospf opaque LSA function table memory leak. 2. Remove incorrect one-to-one association of OSPF info-per-type to function table (since there many be many). 3. Fix a problem with opaque AS external cleanup that was exposed by #2. 4. Fix LSA memory leak in ospf_opaque_type9_lsa_if_cleanup(). Signed-off-by: Acee <aceelindem@gmail.com>
* ospfd: Correct LSA parser which fulfill the TEDOlivier Dugeon2023-12-141-21/+8
| | | | | | | | | | | | | | | | | | | | Traffic Engineering Database (TED) is fulfill from the various LSA advertised and received by the router. To remove information on the TED, 2 mechanisms are used: i) parse TE Opaque LSA when there are flushed and ii) compare the list of prefixes advertised in the Router LSA with the list of corresponding edges and subnets contained in the TED. However, this second mechanism assumes that the Router LSA is unique and contains all prefixes of the advertised router. But, this is wrong. Prefixes could be advertised with several Router LSA. This conduct to remove edge and subnet in the TED while it should be maintained. The result is a faulty test with ospf_sr_te_topo1 topotest when server is heavy loaded. This simple patch removed deletion of edges and subnets when parsing the Router LSA and only removed them when the corresponding TE Opaque LSA is flushed. In addition, TE Opaque LSA are not flushed when OSPF ajacency goes down. This patch also correct this second problem. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* ospfd: fix ospf dead-interval minimal hello-multiplier param rangeBing Shui2023-12-131-3/+3
| | | | Signed-off-by: Bing Shui <652023330037@smail.nju.edu.cn>
* ospfd: Correct SID check sizeOlivier Dugeon2023-12-081-3/+15
| | | | | | | | | Segment Router Identifier (SID) could be an index (4 bytes) within a range (SRGB or SRLB) or an MPLS label (3 bytes). Thus, before calling check_size macro to verify SID TLVs size, it is mandatory to determine the SID type to avoid wrong assert. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
* ospfd: fix deferred shutdown handlingRenato Westphal2023-12-011-44/+12
| | | | | | | | | | | | | | | | | | | | | The ospfd cleanup code is relatively complicated given the need to appropriately handle the "max-metric router-lsa on-shutdown (5-100)" command. When that command is configured and an OSPF instance is unconfigured, the removal of the instance should be deferred to allow other routers sufficient time to find alternate paths before the local Router-LSAs are flushed. When ospfd is killed, however, deferred shutdown shouldn't take place and all instances should be cleared immediately. This commit fixes a problem where ospf_deferred_shutdown_finish() was prematurely exiting the daemon when no instances were left, inadvertently preventing ospf_terminate() from clearing the ospfd global variables. Additionally, the commit includes code refactoring to enhance readability and maintainability. Fixes #14855. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* ospfd: improve memory cleanup during shutdownRenato Westphal2023-12-012-7/+5
| | | | | | | | | | * On ospf_terminate(), proceed to clear the ospfd global variables even when no OSPF instance is configured * Remove double call to route_map_finish() * Call ospf_opaque_term() to clear the opaque LSA infrastructure * Clear the `OspfRI.area_info` and `om->ospf` global lists. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
* Merge pull request #14886 from LabNConsulting/aceelindem/ospf-link-local-fixDonatas Abraitis2023-11-295-25/+58
|\ | | | | ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruption
| * ospfd: Fix OSPF link-local opaque LSA crash and opaque memory corruptionAcee2023-11-285-25/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | 1. When an OSPF interface is deleted, remove the references in link-local LSA. Delete the LSA from the LSDB so that the callback has accessibily to the interface prior to deletion. 2. Fix a double free for the opaque function table data structure. 3. Assure that the opaque per-type information and opaque function table structures are removed at the same time since they have back pointers to one another. 4. Add a topotest variation for the link-local opaque LSA crash. Signed-off-by: Acee <aceelindem@gmail.com>
* | Merge pull request #14811 from donaldsharp/zebra_final_shutdown_finallyChristian Hopps2023-11-281-0/+2
|\ \ | | | | | | Zebra final shutdown finally
| * | *: Cleanup keychain on shutdownDonald Sharp2023-11-211-0/+2
| | | | | | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | | Merge pull request #14867 from opensourcerouting/zclient-options-cleanupDonald Sharp2023-11-251-3/+1
|\ \ \ | | | | | | | | *: clean up `zclient` options
| * | | *: add `zclient_options_sync`David Lamparter2023-11-231-3/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | ... and use it instead of fiddling with the `.synchronous` field. (Make it const while at it.) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* / | *: convert `struct interface->connected` to DLISTDavid Lamparter2023-11-223-6/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace `struct list *` with `DLIST(if_connected, ...)`. NB: while converting this, I found multiple places using connected prefixes assuming they were IPv4 without checking: - vrrpd/vrrp.c: vrrp_socket() - zebra/irdp_interface.c: irdp_get_prefix(), irdp_if_start(), irdp_advert_off() (these fixes are really hard to split off into separate commits as that would require going back and reapplying the change but with the old list handling) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | Merge pull request #14850 from donaldsharp/IFNAMSIZ_GET_YOUR_SHIT_TOGETHERDonatas Abraitis2023-11-221-1/+1
|\ \ | |/ |/| *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZ
| * *: Let's use the native IFNAMSIZ instead of INTERFACE_NAMSIZDonald Sharp2023-11-211-1/+1
| | | | | | | | | | | | | | | | INTERFACE_NAMSIZ is just a redefine of IFNAMSIZ and IFNAMSIZ is the standard for interface name length on all platforms that FRR currently compiles on. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | Merge pull request #14834 from opensourcerouting/zclient-nexthop-updateDonald Sharp2023-11-211-19/+9
|\ \ | |/ |/| *: move common NHT update decoding bits into lib/
| * ospfd: use `zclient->nexthop_update`David Lamparter2023-11-201-19/+9
| | | | | | | | | | | | Same as before. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* | Merge pull request #14710 from teletajp/fix_show_ospf_gr_helper_cmdDonatas Abraitis2023-11-211-24/+9
|\ \ | |/ |/| ospfd:fix show_ip_ospf_gr_helper
| * ospfd: fix show_ip_ospf_gr_helperteletajp2023-11-151-24/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for the command "show ip ospf vrf NAME graceful-restart helper". FRR did not show information by vrf's name. If i have router ospf vrf red, vtysh's command 'show ip ospf vrf red graceful-restart helper' will not show anything. But command 'show ip ospf vrf all graceful-restart helper' will work normally. This fix fixes the display of information by vrf's name. Example: frr1# show ip ospf vrf vrf-1 graceful-restart helper VRF Name: vrf-1 OSPF Router with ID (192.168.255.81) Graceful restart helper support enabled. Strict LSA check is enabled. Helper supported for Planned and Unplanned Restarts. Supported Graceful restart interval: 1800(in seconds). Signed-off-by: teletajp <teletajp@yandex.ru>
* | ospfd: Cleanup route-map memoryDonald Sharp2023-11-132-0/+3
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | *: Move distance related defines into their own headerDonald Sharp2023-11-071-0/+1
| | | | | | | | Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | lib: convert if_zapi_callbacks into actual hooksDavid Lamparter2023-11-031-2/+4
|/ | | | | | | | | ...so that multiple functions can be subscribed. The create/destroy hooks are renamed to real/unreal because that's what they *actually* signal. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
* Merge pull request #14688 from opensourcerouting/fix/ospf_spacing_nitMark Stapp2023-10-301-1/+1
|\ | | | | ospfd, ospf6d: Fix spacing nit for `show ... summary-address` command
| * ospfd, ospf6d: Fix spacing nit for `show ... summary-address` commandDonatas Abraitis2023-10-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | ``` r1# sh ipv6 ospf6 summary-address VRF Name: default aggregation delay interval :5(in seconds) ``` Just hit this random and looks ugly, let's fix it. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
* | Merge pull request #13576 from chiragshah6/mdev1Donatas Abraitis2023-10-301-4/+4
|\ \ | |/ |/| zebra:returns empty dict when evpn is disabled II
| * *: modify empty json helper functionChirag Shah2023-10-291-4/+4
| | | | | | | | | | | | | | | | | | | | Modify empty json object to take input obj instead of allocating always one. There are situation where in error condition or no data case print empty json (`{}`) with already allocated Signed-off-by: Chirag Shah <chirag@nvidia.com>
* | build: add -Wimplicit-fallthroughIgor Ryzhov2023-10-125-7/+8
| | | | | | | | | | | | | | | | | | | | Also: - replace all /* fallthrough */ comments with portable fallthrough; pseudo keyword to accomodate both gcc and clang - add missing break; statements as required by older versions of gcc - cleanup some code to remove unnecessary fallthrough Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
* | ospfd: Fixing infinite loop when listing OSPF interfacesRodrigo Nardi2023-10-101-3/+8
| | | | | | | | | | | | | | The problem was happening because the ospf->oiflist has this behaviour, each interface was removed and added at the end of the list in each ospf_network_run_subnet call, generation an infinite loop. As a solution, a copy of the list was generated and we interacted with a fixed list. Signed-off-by: Rodrigo Nardi <rnardi@netdef.org>
* | Merge pull request #14451 from m-varasteh/ospf-coverity-issuesDonatas Abraitis2023-10-101-11/+22
|\ \ | | | | | | ospfd: a possible fix for TAINTED_SCALAR coverity issues
| * | ospfd: a possible fix for TAINTED_SCALAR coverity issuesMahdi Varasteh2023-10-031-11/+22
| | | | | | | | | | | | Signed-off-by: Mahdi Varasteh <varasteh@amnesh.ir>
* | | *: remove ZEBRA_INTERFACE_VRF_UPDATEanlan_cs2023-10-071-24/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently when one interface changes its VRF, zebra will send these messages to all daemons in *order*: 1) `ZEBRA_INTERFACE_DELETE` ( notify them delete from old VRF ) 2) `ZEBRA_INTERFACE_VRF_UPDATE` ( notify them move from old to new VRF ) 3) `ZEBRA_INTERFACE_ADD` ( notify them added into new VRF ) When daemons deal with `VRF_UPDATE`, they use `zebra_interface_vrf_update_read()->if_lookup_by_name()` to check the interface exist or not in old VRF. This check will always return *NULL* because `DELETE` ( deleted from old VRF ) is already done, so can't find this interface in old VRF. Send `VRF_UPDATE` is redundant and unuseful. `DELETE` and `ADD` are enough, they will deal with RB tree, so don't send this `VRF_UPDATE` message when vrf changes. Since all daemons have good mechanism to deal with changing vrf, and don't use this `VRF_UPDATE` mechanism. So, it is safe to completely remove all the code with `VRF_UPDATE`. Signed-off-by: anlan_cs <anlan_cs@tom.com>
* | | Merge pull request #14356 from Keelan10/ospf_external_aggregator-leakRuss White2023-09-261-0/+1
|\ \ \ | | | | | | | | ospfd: Fix External Aggregator Leak
| * | | ospfd: Fix External Aggregator LeakKeelan102023-09-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a memory leak in ospfd where the external aggregator was not released after its associated route node is deleted. The ASan leak log for reference: ``` *********************************************************************************** Address Sanitizer Error detected in ospf_basic_functionality.test_ospf_asbr_summary_topo1/r0.asan.ospfd.31502 ================================================================= ==31502==ERROR: LeakSanitizer: detected memory leaks Direct leak of 200 byte(s) in 5 object(s) allocated from: #0 0x7fdb30665d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28) #1 0x7fdb300620da in qcalloc lib/memory.c:105 #2 0x55e53c2da5fa in ospf_external_aggregator_new ospfd/ospf_asbr.c:396 #3 0x55e53c2dead3 in ospf_asbr_external_aggregator_set ospfd/ospf_asbr.c:1123 #4 0x55e53c27c921 in ospf_external_route_aggregation ospfd/ospf_vty.c:10264 #5 0x7fdb2ffe5428 in cmd_execute_command_real lib/command.c:993 #6 0x7fdb2ffe58ec in cmd_execute_command lib/command.c:1051 #7 0x7fdb2ffe5d6b in cmd_execute lib/command.c:1218 #8 0x7fdb3010ce2a in vty_command lib/vty.c:591 #9 0x7fdb3010d2d5 in vty_execute lib/vty.c:1354 #10 0x7fdb30115b9b in vtysh_read lib/vty.c:2362 #11 0x7fdb30100b99 in event_call lib/event.c:1979 #12 0x7fdb30045379 in frr_run lib/libfrr.c:1213 #13 0x55e53c1ccab4 in main ospfd/ospf_main.c:249 #14 0x7fdb2f65dc86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) Direct leak of 40 byte(s) in 1 object(s) allocated from: #0 0x7fdb30665d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28) #1 0x7fdb300620da in qcalloc lib/memory.c:105 #2 0x55e53c2da5fa in ospf_external_aggregator_new ospfd/ospf_asbr.c:396 #3 0x55e53c2dedd3 in ospf_asbr_external_rt_no_advertise ospfd/ospf_asbr.c:1182 #4 0x55e53c27cf10 in ospf_external_route_aggregation_no_adrvertise ospfd/ospf_vty.c:10626 #5 0x7fdb2ffe5428 in cmd_execute_command_real lib/command.c:993 #6 0x7fdb2ffe58ec in cmd_execute_command lib/command.c:1051 #7 0x7fdb2ffe5d6b in cmd_execute lib/command.c:1218 #8 0x7fdb3010ce2a in vty_command lib/vty.c:591 #9 0x7fdb3010d2d5 in vty_execute lib/vty.c:1354 #10 0x7fdb30115b9b in vtysh_read lib/vty.c:2362 #11 0x7fdb30100b99 in event_call lib/event.c:1979 #12 0x7fdb30045379 in frr_run lib/libfrr.c:1213 #13 0x55e53c1ccab4 in main ospfd/ospf_main.c:249 #14 0x7fdb2f65dc86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) SUMMARY: AddressSanitizer: 240 byte(s) leaked in 6 allocation(s). *********************************************************************************** ``` Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
* | | | ospfd: fix some dicey pointer arith in snmp moduleMark Stapp2023-09-211-13/+13
| |/ / |/| | | | | | | | | | | | | | | | | Coverity reports some uses of 'oid *' as if they were 'char *'; try to correct that. Signed-off-by: Mark Stapp <mjs@labn.net>
* | | [ospfd]: add support for RFC 5709 HMAC-SHA AuthMahdi Varasteh2023-09-1610-388/+864
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch includes: * Implementation of RFC 5709 support in OSPF. Using openssl library and FRR key-chain, one can use SHA1, SHA256, SHA384, SHA512 and keyed-MD5( backward compatibility with RFC 2328) HMAC algs. * Updating documentation of OSPF * add topotests for new HMAC algorithms Signed-off-by: Mahdi Varasteh <varasteh@amnesh.ir>
* | | ospfd: fix area range memory leakKeelan102023-09-051-2/+11
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Addressed a memory leak in OSPF by fixing the improper deallocation of area range nodes when removed from the table. Introducing a new function, `ospf_range_table_node_destroy` for proper node cleanup, resolved the issue. The ASan leak log for reference: ``` Direct leak of 56 byte(s) in 2 object(s) allocated from: #0 0x7faf661d1d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28) #1 0x7faf65bce1e9 in qcalloc lib/memory.c:105 #2 0x55a66e0b61cd in ospf_area_range_new ospfd/ospf_abr.c:43 #3 0x55a66e0b61cd in ospf_area_range_set ospfd/ospf_abr.c:195 #4 0x55a66e07f2eb in ospf_area_range ospfd/ospf_vty.c:631 #5 0x7faf65b51548 in cmd_execute_command_real lib/command.c:993 #6 0x7faf65b51f79 in cmd_execute_command_strict lib/command.c:1102 #7 0x7faf65b51fd8 in command_config_read_one_line lib/command.c:1262 #8 0x7faf65b522bf in config_from_file lib/command.c:1315 #9 0x7faf65c832df in vty_read_file lib/vty.c:2605 #10 0x7faf65c83409 in vty_read_config lib/vty.c:2851 #11 0x7faf65bb0341 in frr_config_read_in lib/libfrr.c:977 #12 0x7faf65c6cceb in event_call lib/event.c:1979 #13 0x7faf65bb1488 in frr_run lib/libfrr.c:1213 #14 0x55a66dfb28c4 in main ospfd/ospf_main.c:249 #15 0x7faf651c9c86 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) SUMMARY: AddressSanitizer: 56 byte(s) leaked in 2 allocation(s). ``` Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
* | ospfd: Prevent use after free( and crash of ospf ) when no router ospfDonald Sharp2023-08-301-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider this config: router ospf redistribute kernel Then you issue: no router ospf ospf will crash with a use after free. The problem is that the event's associated with the ospf pointer were shut off then the ospf_external_delete was called which rescheduled the event. Let's just move event deletion to the end of the no router ospf. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
* | ospfd: Delete `q_space->vertex_list` on No Backup PathKeelan102023-08-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In scenarios where no backup paths are available, ensure proper memory management by deleting `q_space->vertex_list`. This prevents memory leaks. The ASan leak log for reference: ``` Direct leak of 80 byte(s) in 2 object(s) allocated from: #0 0x7fcf8c70aa37 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154 #1 0x7fcf8c2a8a45 in qcalloc ../lib/memory.c:105 #2 0x7fcf8c27d0cc in list_new ../lib/linklist.c:49 #3 0x55d6e8385e35 in ospf_spf_init ../ospfd/ospf_spf.c:540 #4 0x55d6e838c30d in ospf_spf_calculate ../ospfd/ospf_spf.c:1736 #5 0x55d6e83933cf in ospf_ti_lfa_generate_q_spaces ../ospfd/ospf_ti_lfa.c:673 #6 0x55d6e8394214 in ospf_ti_lfa_generate_p_space ../ospfd/ospf_ti_lfa.c:812 #7 0x55d6e8394c63 in ospf_ti_lfa_generate_p_spaces ../ospfd/ospf_ti_lfa.c:923 #8 0x55d6e8396390 in ospf_ti_lfa_compute ../ospfd/ospf_ti_lfa.c:1101 #9 0x55d6e838ca48 in ospf_spf_calculate_area ../ospfd/ospf_spf.c:1811 #10 0x55d6e838cd73 in ospf_spf_calculate_areas ../ospfd/ospf_spf.c:1840 #11 0x55d6e838cfb0 in ospf_spf_calculate_schedule_worker ../ospfd/ospf_spf.c:1871 #12 0x7fcf8c3922e4 in event_call ../lib/event.c:1979 #13 0x7fcf8c27c828 in frr_run ../lib/libfrr.c:1213 #14 0x55d6e82eeb6d in main ../ospfd/ospf_main.c:249 #15 0x7fcf8bd59d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 ``` Signed-off-by: Keelan Cannoo <keelan.cannoo@icloud.com>
* | Merge pull request #14016 from mjstapp/event_exec_ptrDonald Sharp2023-08-153-3/+3
|\ \ | | | | | | * : include event ptr in event_execute api
| * | * : include event ptr in event_execute apiMark Stapp2023-07-253-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Include an event ptr-to-ptr in the event_execute() api call, like the various schedule api calls. This allows the execute() api to cancel an existing scheduled task if that task is being executed inline. Signed-off-by: Mark Stapp <mjs@labn.net>
* | | ospfd: Ensure listnode returns are usableDonald Sharp2023-08-071-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Coverity is complaining that listnode can return a NULL value and thus FRR could derefence the returned value. Since this is not crashing we know that this is not happening in the wild. Let's make this an assert or check that it is legal to use the value. Signed-off-by: Donald Sharp <sharpd@nvidia.com>