mirror_frr/ospfd
rgirada 594f80c83f ospfd: Fixing memleak.
Description:
	As part of signal handler ospf_finish_final(),  lsas are originated
	and added to refresh queues are not freed.

	One such leak is :
	==2869285== 432 (40 direct, 392 indirect) bytes in 1 blocks are definitely lost in loss record 159 of 221
	==2869285==    at 0x484DA83: calloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
	==2869285==    by 0x4910EC3: qcalloc (memory.c:116)
	==2869285==    by 0x199024: ospf_refresher_register_lsa (ospf_lsa.c:4017)
	==2869285==    by 0x199024: ospf_refresher_register_lsa (ospf_lsa.c:3979)
	==2869285==    by 0x19A37F: ospf_network_lsa_install (ospf_lsa.c:2680)
	==2869285==    by 0x19A37F: ospf_lsa_install (ospf_lsa.c:2941)
	==2869285==    by 0x19C18F: ospf_network_lsa_update (ospf_lsa.c:1099)
	==2869285==    by 0x1931ED: ism_change_state (ospf_ism.c:556)
	==2869285==    by 0x1931ED: ospf_ism_event (ospf_ism.c:596)
	==2869285==    by 0x494E0B0: thread_call (thread.c:2006)
	==2869285==    by 0x494E395: _thread_execute (thread.c:2098)
	==2869285==    by 0x19FBC6: nsm_change_state (ospf_nsm.c:695)
	==2869285==    by 0x19FBC6: ospf_nsm_event (ospf_nsm.c:861)
	==2869285==    by 0x494E0B0: thread_call (thread.c:2006)
	==2869285==    by 0x494E395: _thread_execute (thread.c:2098)
	==2869285==    by 0x19020B: ospf_if_cleanup (ospf_interface.c:322)
	==2869285==    by 0x192D0C: ism_interface_down (ospf_ism.c:393)
	==2869285==    by 0x193028: ospf_ism_event (ospf_ism.c:584)
	==2869285==    by 0x494E0B0: thread_call (thread.c:2006)
	==2869285==    by 0x494E395: _thread_execute (thread.c:2098)
	==2869285==    by 0x190F10: ospf_if_down (ospf_interface.c:851)
	==2869285==    by 0x1911D6: ospf_if_free (ospf_interface.c:341)
	==2869285==    by 0x1E6E98: ospf_finish_final (ospfd.c:748)
	==2869285==    by 0x1E6E98: ospf_deferred_shutdown_finish (ospfd.c:578)
	==2869285==    by 0x1E7727: ospf_finish (ospfd.c:682)
	==2869285==    by 0x1E7727: ospf_terminate (ospfd.c:652)
	==2869285==    by 0x18852B: sigint (ospf_main.c:105)
	==2869285==    by 0x493BE12: frr_sigevent_process (sigevent.c:130)
	==2869285==    by 0x494DCD4: thread_fetch (thread.c:1775)
	==2869285==    by 0x4905022: frr_run (libfrr.c:1197)
	==2869285==    by 0x187891: main (ospf_main.c:235)

	Added a fix to cleanup all these queue pointers and corresponing lsas in it.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2022-11-22 09:59:40 +00:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
ChangeLog.opaque.txt Initial revision 2003-02-03 16:31:16 +00:00
Makefile build: non-recursive ospf* 2017-08-04 11:09:50 +02:00
ospf_abr.c ospfd: changes code maintainability 2022-08-19 12:45:16 +05:30
ospf_abr.h ospfd: change default ospf schedule abr task timer 2022-10-12 15:27:43 +00:00
ospf_api.c ospfd/ospfclient: add option to flush/withdrawal with zero length 2022-10-21 15:27:58 +00:00
ospf_api.h ospfd/ospfclient: add option to flush/withdrawal with zero length 2022-10-21 15:27:58 +00:00
ospf_apiserver.c ospfd/ospfclient: add option to flush/withdrawal with zero length 2022-10-21 15:27:58 +00:00
ospf_apiserver.h ospfd: add router id support to ospf api 2022-06-23 05:01:40 -04:00
ospf_asbr.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospf_asbr.h ospfd: adjust type of "aggr_delay_interval" 2022-01-28 20:11:40 -05:00
ospf_ase.c ospfd: changes for code maintainability 2022-08-28 20:48:29 +05:30
ospf_ase.h *: reindent 2017-07-17 14:04:07 +02:00
ospf_bfd.c ospfd: set/unset bfd profile 2022-06-30 10:56:34 +03:00
ospf_bfd.h ospfd: rework BFD integration 2021-03-23 10:18:42 -03:00
ospf_dump_api.c ospfd: replace inet_ntoa 2020-10-22 13:37:25 -04:00
ospf_dump_api.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
ospf_dump.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
ospf_dump.h ospfd: rSPF calc and messaging for optimal route reflection 2022-10-12 13:43:55 +05:30
ospf_errors.c ospfd: Add Segment Routing Local Block 2020-08-20 14:37:40 +02:00
ospf_errors.h ospfd: Add Segment Routing Local Block 2020-08-20 14:37:40 +02:00
ospf_ext.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospf_ext.h ospfd: Add Segment Routing Local Block 2020-08-20 14:37:40 +02:00
ospf_flood.c ospfd: fix bug where acks were not be generated to incoming P2P/P2MP neighbors 2022-10-29 17:17:56 +00:00
ospf_flood.h ospfd: introduce support for Graceful Restart (restarting mode) 2021-07-05 11:43:02 -03:00
ospf_gr_helper.c *: remove the checking returned value for hash_get() 2022-05-03 00:41:48 +08:00
ospf_gr.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
ospf_gr.h ospfd: introduce support for Graceful Restart (restarting mode) 2021-07-05 11:43:02 -03:00
ospf_ia.c ospfd: changes for code maintainability 2022-08-22 18:23:04 +05:30
ospf_ia.h *: reindent 2017-07-17 14:04:07 +02:00
ospf_interface.c ospfd: Allow unnumbered and numbered addresses to co-exist better 2022-10-12 16:20:30 -04:00
ospf_interface.h ospfd: Refactor fifo_flush for the interface 2022-08-11 13:30:32 -04:00
ospf_ism.c ospfd: Remove various macros that overlap THREAD_OFF 2022-07-21 08:27:35 -04:00
ospf_ism.h ospfd: Remove various macros that overlap THREAD_OFF 2022-07-21 08:27:35 -04:00
ospf_ldp_sync.c build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00
ospf_ldp_sync.h ldpd, isisd, ospfd: Remove periodic ldp-sync hello message 2020-12-09 14:11:38 -05:00
ospf_lsa.c ospfd: prevent from crashing when processing external lsa 2022-11-10 15:11:53 +01:00
ospf_lsa.h ospfd/ospfclient: add option to flush/withdrawal with zero length 2022-10-21 15:27:58 +00:00
ospf_lsdb.c ospfd: rSPF calc and messaging for optimal route reflection 2022-10-12 13:43:55 +05:30
ospf_lsdb.h ospfd: replace pqueue_* with DECLARE_SKIPLIST 2019-04-27 19:33:45 +02:00
ospf_main.c *: Convert quagga_signal_X to frr_signal_X 2021-11-11 14:41:27 -05:00
ospf_memory.c ospfd: rSPF calc and messaging for optimal route reflection 2022-10-12 13:43:55 +05:30
ospf_memory.h ospfd: rSPF calc and messaging for optimal route reflection 2022-10-12 13:43:55 +05:30
ospf_neighbor.c ospfd: Remove various macros that overlap THREAD_OFF 2022-07-21 08:27:35 -04:00
ospf_neighbor.h ospfd: rename the graceful restart header 2021-07-05 11:43:02 -03:00
ospf_network.c ospfd: don't exit when socket is not created 2021-07-27 16:10:35 +03:00
ospf_network.h ospfd: basic support for VRF NETNS backend 2018-02-27 11:11:24 +01:00
ospf_nsm.c ospfd: Refactor fifo_flush for the interface 2022-08-11 13:30:32 -04:00
ospf_nsm.h ospfd: Remove various macros that overlap THREAD_OFF 2022-07-21 08:27:35 -04:00
ospf_opaque.c ospfd/ospfclient: add option to flush/withdrawal with zero length 2022-10-21 15:27:58 +00:00
ospf_opaque.h ospfd: allow for zero length opaque LSAs (which is permitted per RFC 5250) 2022-10-19 11:50:41 +00:00
ospf_orr.c bgpd: code review comments addressed 2022-10-12 13:48:23 +05:30
ospf_orr.h bgpd, ospfd: update BGP when routes are removed from OSPF routing table 2022-10-12 13:43:55 +05:30
ospf_packet.c ospfd: catch and report runt LSAs 2022-10-29 12:33:23 +00:00
ospf_packet.h *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
ospf_ri.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospf_ri.h ospfd: Correct Coverity defects 2021-05-19 09:48:54 +02:00
ospf_route.c bgpd, ospfd: update BGP when routes are removed from OSPF routing table 2022-10-12 13:43:55 +05:30
ospf_route.h bgpd, ospfd: update BGP when routes are removed from OSPF routing table 2022-10-12 13:43:55 +05:30
ospf_routemap_nb_config.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
ospf_routemap_nb.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
ospf_routemap_nb.h ospfd: North-bound implementation for ospfd rmaps 2021-03-30 22:59:30 +03:00
ospf_routemap.c ospfd: don't use if_lookup_by_name_all_vrf 2021-10-15 03:44:42 +03:00
ospf_snmp.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospf_spf.c ospfd: pass the length of string to function 2022-10-13 21:30:46 +08:00
ospf_spf.h ospfd: few fixes in rSPF calc when LSA received from non root node 2022-10-12 13:43:55 +05:30
ospf_sr.c ospfd: Cleanup indentation surrounding oi->nbr 2022-08-11 13:30:32 -04:00
ospf_sr.h ospfd: validate input SRGB and SRLB 2021-09-28 10:40:32 +02:00
ospf_te.c *: Properly use memset() when zeroing 2022-05-11 14:08:47 +03:00
ospf_te.h ospfd: Add Link-State support 2021-03-23 15:39:29 +01:00
ospf_ti_lfa.c ospfd: add all_rtrs route table when opaque enabled 2022-06-02 16:37:16 -04:00
ospf_ti_lfa.h ospfd: Add support for TI-LFA node protection 2021-01-19 15:32:13 +00:00
ospf_vty.c ospfd: Get route-map name for default-information originate 2022-11-07 22:23:07 +02:00
ospf_vty.h ospfd: TI-LFA basic infrastructure and algorithms 2021-01-19 15:32:13 +00:00
ospf_zebra.c ospfd: rSPF calc and messaging for optimal route reflection 2022-10-12 13:43:55 +05:30
ospf_zebra.h ospfd: introduce support for Graceful Restart (restarting mode) 2021-07-05 11:43:02 -03:00
OSPF-ALIGNMENT.txt *: Remove cvs control points 2017-12-05 17:28:12 -05:00
ospfd.c ospfd: Fixing memleak. 2022-11-22 09:59:40 +00:00
ospfd.h ospfd: few fixes in rSPF calc when LSA received from non root node 2022-10-12 13:43:55 +05:30
subdir.am build, vtysh: extract vtysh commands from .xref 2022-10-26 17:12:34 +01:00