Commit Graph

22733 Commits

Author SHA1 Message Date
Donald Sharp
dd53fd0832 ospfd: Prevent sending of uninited data to zebra
Valgrind reports:
2174600-==2174600==
2174600-==2174600== Syscall param write(buf) points to uninitialised byte(s)
2174600:==2174600==    at 0x49C7FB3: write (write.c:26)
2174600-==2174600==    by 0x48A4EA0: buffer_write (buffer.c:475)
2174600-==2174600==    by 0x4915AD9: zclient_send_message (zclient.c:298)
2174600-==2174600==    by 0x12DB97: ospf_ldp_sync_state_req_msg (ospf_ldp_sync.c:114)
2174600-==2174600==    by 0x12E4F0: ospf_ldp_sync_if_start (ospf_ldp_sync.c:160)
2174600-==2174600==    by 0x12E4F0: ospf_ldp_sync_ism_change (ospf_ldp_sync.c:339)
2174600-==2174600==    by 0x12E4F0: ospf_ldp_sync_ism_change (ospf_ldp_sync.c:332)
2174600-==2174600==    by 0x12C6A2: hook_call_ospf_ism_change (ospf_ism.c:46)
2174600-==2174600==    by 0x12C6A2: ism_change_state (ospf_ism.c:540)
2174600-==2174600==    by 0x12C6A2: ospf_ism_event (ospf_ism.c:600)
2174600-==2174600==    by 0x4904846: thread_call (thread.c:1681)

When we send the request structure we are sending the whole thing and the
interface name string has junk at the end.  Not a big deal, but cleans
up valgrind going wumple on us.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-30 14:13:34 -05:00
Donald Sharp
de8b27a6cc eigrpd: Prevent uninitialized value from being used
valgrind is finding:

2141982-==2141982== Conditional jump or move depends on uninitialised value(s)
2141982:==2141982==    at 0x11A7A6: eigrp_metrics_is_same (eigrp_metric.c:134)
2141982-==2141982==    by 0x120360: eigrp_topology_update_distance (eigrp_topology.c:374)
2141982-==2141982==    by 0x124F01: eigrp_get_fsm_event (eigrp_fsm.c:284)
2141982-==2141982==    by 0x12519E: eigrp_fsm_event (eigrp_fsm.c:419)
2141982-==2141982==    by 0x1206A1: eigrp_topology_neighbor_down (eigrp_topology.c:518)
2141982-==2141982==    by 0x11AB3A: eigrp_nbr_delete (eigrp_neighbor.c:178)
2141982-==2141982==    by 0x124494: eigrp_finish_final (eigrpd.c:271)
2141982-==2141982==    by 0x1245A8: eigrp_finish (eigrpd.c:247)
2141982-==2141982==    by 0x124630: eigrp_terminate (eigrpd.c:240)
2141982-==2141982==    by 0x11344B: sigint (eigrp_main.c:112)
2141982-==2141982==    by 0x48F5F32: quagga_sigevent_process (sigevent.c:130)

Prevent this from happening.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-30 13:38:32 -05:00
Rafael Zalamena
ecf497baed
Merge pull request #7953 from mjstapp/fix_more_ntoa
libs, ospfd: remove inet_ntoa
2021-01-29 08:01:03 -03:00
Donatas Abraitis
c600e8a52c
Merge pull request #7960 from kishorekunal01/bgp_fix_allowas_in
BGP: "no neighbor <peer-group> allowas-in" is not resetting the peer-group member allowas_in[afi][safi].
2021-01-29 09:17:26 +02:00
Donatas Abraitis
67725010ff
Merge pull request #7974 from donaldsharp/more_if_zero
More if zero
2021-01-29 09:14:49 +02:00
Donald Sharp
79ea62839f
Merge pull request #7955 from volta-networks/fix_isis_lsp_bit_topotest
tests: temporarily remove isis-lsp-bit-topo1 topotest
2021-01-28 16:58:27 -05:00
Donald Sharp
1e1d6a8a22
Merge pull request #7967 from ton31337/feature/show_bgp_summary_wide
bgpd: Add `show bgp summary wide` command
2021-01-28 16:00:58 -05:00
Donald Sharp
0c6ac261df
Merge pull request #7968 from ton31337/feature/doc_ebgp_reset_session
doc: ebgp-requires-policy requires manuall session clearing
2021-01-28 15:41:39 -05:00
Donald Sharp
153bdb3d03 ospfd: ospf_nbr_nbma_lookup_next always returns NULL
The calling function of ospf_nbr_nbma_lookup_next calls
this function and then immediately returns when it
gets the NULL.  Just cleanup a bit more code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 14:56:11 -05:00
Donald Sharp
d3e3a408d5 pbrd: Remove #if 0 code
I am not even sure what the goal of this code was in any
way shape fashion or form.  But since it's pbr_nht.c
I as the original author should know... But I don't.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 14:04:59 -05:00
Donald Sharp
a2157a13a5 lib: Remove #if 0 code
Just some more dead code that has been sitting unused for
a very long time.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 14:04:02 -05:00
Donald Sharp
054ffe7a8e eigrpd: Remove #if 0 dead code
There is some dead code in eigrpd

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 14:00:45 -05:00
Donald Sharp
74dd7f6da6 bfdd: Remove #if 0
We do have a bunch of old code that is never used.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:58:34 -05:00
Donald Sharp
cadc15cfe2 zebra: Remove #if 0 code
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:57:49 -05:00
Donald Sharp
62e0464d73 bgpd: Remove #if 0 code
Remove all dead #if 0 code from bgpd.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:57:49 -05:00
Donald Sharp
9a290f679a isisd: Remove #if 0 code
Looks like the #if 0 code in this place was for ESI support
on solaris.  We do not support solaris anymore.  So let's
remove with prejudice.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:45:44 -05:00
Donald Sharp
56b7d6bfe9 ripngd: Remove #if 0 code
Remove some more dead code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:43:46 -05:00
Donald Sharp
94457bc6a8 ripd: #if 0 we know what you are up to.
rip, ripped out the #if 0 code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:40:05 -05:00
Donald Sharp
af1cc4c84c pimd: Remove #if 0 code from system
Old dead code.
Like a log
jamming your build system

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:37:53 -05:00
lynne
d61731fbe3 tests: temporarily remove isis-lsp-bits-topo1 topotest
Signed-off-by: Lynne Morrison <lynne@voltanet.io>
2021-01-28 13:37:52 -05:00
Donald Sharp
8b36526475 ospf6d: Remove #if 0 code that has not been used in a long time
The earliest that some of this code is 2018.  There is not
much point in keeping this code around.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:34:55 -05:00
Donald Sharp
59293b8e70 ospfd: Remove #if 0 code
The #if 0 code in ospfd, has not been compiled since at least
2012.  If we are at least 9 years old at this point with no effort
to use or save, we should just get rid of it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-28 13:21:12 -05:00
Kishore Kunal
e92882c60e bgpd: Removing "neighbor <peer-group> allowas-in"
Unconfig not resetting the peer-group member allowas_in[afi][safi]
This is causing remote route to be accept.

Signed-off-by: Kishore Kunal <kishorekunal01@broadcom.com>
2021-01-28 16:54:35 +00:00
Donatas Abraitis
b3cbe765b8 doc: ebgp-requires-policy requires manuall session clearing
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-28 17:15:02 +02:00
Donald Sharp
e6d17d2fa9
Merge pull request #7933 from deastoe/show-route-header-sep
lib: restore blank line after show route header
2021-01-28 09:55:52 -05:00
Donatas Abraitis
749d0f27ab bgpd: Show NoNeg instead of bad parsing show bgp summary if disabled
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-28 16:36:15 +02:00
Donatas Abraitis
28b25b6b5e doc: Add show bgp summary wide short description
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-28 16:36:15 +02:00
Donatas Abraitis
c854765f97 bgpd: Include local AS for JSON output in show bgp summary json cmd
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-28 16:36:14 +02:00
Donatas Abraitis
85eeb02915 bgpd: Add show bgp summary wide command
Add LocalAS into wide output and extend Desc to 64 chars instead of 20.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2021-01-28 16:35:16 +02:00
Donatas Abraitis
04e5b8525a
Merge pull request #7952 from kuldeepkash/documentation
doc: topotests-markers typo error
2021-01-28 10:34:55 +02:00
Donatas Abraitis
218c799eae
Merge pull request #7433 from sudhanshukumar22/bgp-aggregate-member-issue
bgpd:'bgpd' core generated on Leaf device with system-test config
2021-01-28 10:34:22 +02:00
Donald Sharp
776a2f8666 *: Update version string
Update the version string to reflect work towards next release

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-27 15:32:52 -05:00
Mark Stapp
acc847c999 libs, ospfd: remove inet_ntoa
inet_ntoa not permitted - replace instances.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-01-27 15:00:10 -05:00
kuldeepkash
ccdf4a5ea5 doc: topotests-markers typo error
Fixed topotests-markers typo error

Signed-off-by: kuldeepkash <kashyapk@vmware.com>
2021-01-27 19:45:31 +00:00
Donald Sharp
4a3d955024
Merge pull request #7936 from pjdruddy/l3vpn-lableled-nh-check
bgpd: make sure nh is valid for MPLS vpn routes
2021-01-27 13:00:29 -05:00
Pat Ruddy
4053e9520a bgpd: make sure nh is valid for MPLS vpn routes
If we are using a nexthop for a MPLS VPN route make sure the
nexthop is over a labeled path. This new check mirrors the one
in validate_paths (where routes are enabled when a nexthop
becomes reachable). The check is introduced to the code path
where routes are added and the nexthop is looked up.

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-01-27 13:56:45 +00:00
Duncan Eastoe
e3490d1fa2 lib: restore blank line after show route header
In 5a3cf85391 the trailing empty line
following the "show ip(v6) route" header was removed. Restore it for
consistency.

Signed-off-by: Duncan Eastoe <duncan.eastoe@att.com>
2021-01-27 12:19:52 +00:00
Duncan Eastoe
ec20380c34 tests: more robust show route header stripping
In test_converge_protocols() use sed to match the "show ip(v6) route"
header and strip it, rather than using tail which requires hardcoding
the expected length of the header (which is subject to change).

Signed-off-by: Duncan Eastoe <duncan.eastoe@att.com>
2021-01-27 12:19:52 +00:00
Mark Stapp
504bb03736
Merge pull request #7935 from donaldsharp/ospf6_use_after_free
ospf6d: Track wait_timer and disable when needed
2021-01-26 16:04:24 -05:00
Donald Sharp
b2fd215b21
Merge pull request #7925 from opensourcerouting/watchfrr-netns
watchfrr: fix crash on missing optional argument
2021-01-26 15:31:04 -05:00
Donald Sharp
79fd1dc867
Merge pull request #7938 from mjstapp/fix_netlink_debugs
zebra: debug messages go under conditionals
2021-01-26 15:30:41 -05:00
Donald Sharp
6df6d7bdf1
Merge pull request #7368 from eololab/add-pidfile-in-frr.service
tools: add PIDFile option in frr.service
2021-01-26 13:29:26 -05:00
Mark Stapp
4c99d413e6 zebra: debug messages go under conditionals
Move a couple of unprotected debug calls in the netlink code
under DEBUG_KERNEL.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2021-01-26 12:29:39 -05:00
Patrick Ruddy
b5a9054d76
Merge pull request #7635 from AnuradhaKaruppiah/ead-evi-knobs
bgpd: add config knobs to disable rx and tx of ead-per-evi routes
2021-01-26 17:14:57 +00:00
Rafael Zalamena
53a78fc1d9 watchfrr: fix SA warning
`valid_command` now causes static analyzer complaints since it no
longer assumes `optarg` is non-NULL. If this was the case then
`valid_command` would return `false` (or 0) because it would mean the
string is empty and doesn't contain the '%s' it expects.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-01-26 14:13:07 -03:00
Mark Stapp
ab57fb1280
Merge pull request #7934 from donaldsharp/valgrind_cleanups
pimd: Prevent use after free
2021-01-26 10:55:35 -05:00
Donald Sharp
9ae41e3105 ospf6d: Track wait_timer and disable when needed
When removing ospfv3 from an interface that has been previously
put into wait state, there is a possible use after free of the
oi because the wait_timer could have been started for the interface.
This is because the wait_timer was not tracked by the interface
and we just created a thread for it without storing the thread
pointer.

Issue: #7932
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-26 08:13:44 -05:00
Donald Sharp
eaffe5e892 pimd: Prevent use after free
Valgrind is reporting this:
==22220== Invalid read of size 4
==22220==    at 0x11DC2B: pim_if_delete (pim_iface.c:215)
==22220==    by 0x11DD71: pim_if_terminate (pim_iface.c:76)
==22220==    by 0x128E03: pim_instance_terminate (pim_instance.c:66)
==22220==    by 0x128E03: pim_vrf_delete (pim_instance.c:159)
==22220==    by 0x48E0010: vrf_delete (vrf.c:251)
==22220==    by 0x48E0010: vrf_delete (vrf.c:225)
==22220==    by 0x48E02FE: vrf_terminate (vrf.c:551)
==22220==    by 0x149495: pim_terminate (pimd.c:142)
==22220==    by 0x13C61B: pim_sigint (pim_signals.c:44)
==22220==    by 0x48CF862: quagga_sigevent_process (sigevent.c:103)
==22220==    by 0x48DD324: thread_fetch (thread.c:1404)
==22220==    by 0x48A926A: frr_run (libfrr.c:1122)
==22220==    by 0x11B85E: main (pim_main.c:167)
==22220==  Address 0x5912160 is 1,200 bytes inside a block of size 1,624 free'd
==22220==    at 0x48369AB: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==22220==    by 0x128E52: pim_instance_terminate (pim_instance.c:74)
==22220==    by 0x128E52: pim_vrf_delete (pim_instance.c:159)
==22220==    by 0x48E0010: vrf_delete (vrf.c:251)
==22220==    by 0x48E0010: vrf_delete (vrf.c:225)
==22220==    by 0x48F1353: zclient_vrf_delete (zclient.c:1896)
==22220==    by 0x48F1353: zclient_read (zclient.c:3511)
==22220==    by 0x48DD826: thread_call (thread.c:1585)
==22220==    by 0x48A925F: frr_run (libfrr.c:1123)
==22220==    by 0x11B85E: main (pim_main.c:167)
==22220==  Block was alloc'd at
==22220==    at 0x4837B65: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==22220==    by 0x48ADA4F: qcalloc (memory.c:110)
==22220==    by 0x128B9B: pim_instance_init (pim_instance.c:82)
==22220==    by 0x128B9B: pim_vrf_new (pim_instance.c:142)
==22220==    by 0x48E0C5A: vrf_get (vrf.c:217)
==22220==    by 0x48F13C9: zclient_vrf_add (zclient.c:1863)
==22220==    by 0x48F13C9: zclient_read (zclient.c:3508)
==22220==    by 0x48DD826: thread_call (thread.c:1585)
==22220==    by 0x48A925F: frr_run (libfrr.c:1123)
==22220==    by 0x11B85E: main (pim_main.c:167)

On pim vrf deletion, ensure that the vrf->info pointers are NULL as well
as the free'd pim pointer for ->vrf is NULL as well.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-01-26 07:56:36 -05:00
Russ White
72bd11663f
Merge pull request #7676 from ton31337/fix/show_ip_bgp_summary_description_truncate
bgpd: Strip neighbors's description to 20 chars in show bgp summary
2021-01-26 07:43:45 -05:00
Russ White
1f6549e47a
Merge pull request #7898 from donaldsharp/pim_igmp_crash
pimd: Prevent crash with igmp only config
2021-01-26 07:39:58 -05:00