mirror_frr/bgpd
Quentin Young a127f33b97
bgpd: fix race condition causing occasional assert
If a BGP message header fails validation we send a BGP NOTIFICATION from
the I/O thread. At this time we clear the output buffer, push a
NOTIFICATION and then call the manual write function for errors. But in
between the push and the write the main thread could have pushed some
other message. Thus we need to hold the lock for the duration of the
function. TOCTTOU.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-23 18:51:34 -05:00
..
rfapi Merge pull request #1618 from donaldsharp/zebra_startup_ordering 2018-01-23 08:25:01 +01:00
rfp-example *: add missing \n in some help strings 2017-10-24 19:30:30 -02:00
.gitignore lib, bgpd: fix .gitignore 2017-06-29 19:39:36 +00:00
BGP4-MIB.txt Initial revision 2002-12-13 20:15:29 +00:00
bgp_advertise.c bgpd: Remove peer->hash as that it is unused 2018-01-17 14:17:15 -05:00
bgp_advertise.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_aspath.c bgpd: Only create json for aspath if needed 2017-11-16 20:46:37 -05:00
bgp_aspath.h bgpd: Only create json for aspath if needed 2017-11-16 20:46:37 -05:00
bgp_attr_evpn.c bgpd: rmac ext comm 2017-12-14 10:57:05 -08:00
bgp_attr_evpn.h bgpd: rmac ext comm 2017-12-14 10:57:05 -08:00
bgp_attr.c Merge branch 'master' into evpn-symmetric-routing 2018-01-11 09:00:23 -08:00
bgp_attr.h bgpd: rmac ext comm 2017-12-14 10:57:05 -08:00
bgp_bfd.c bgpd: fix compilation issue with bgpd 2018-01-22 13:52:24 +01:00
bgp_bfd.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_btoa.c Revert "*: reindent pt. 2" 2017-07-22 14:52:33 +02:00
bgp_clist.c bgpd: Only build json for community when needed 2017-11-17 09:04:26 -05:00
bgp_clist.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_community.c bgpd: Only build json for community when needed 2017-11-17 09:04:26 -05:00
bgp_community.h bgpd: Only build json for community when needed 2017-11-17 09:04:26 -05:00
bgp_damp.c *: Define the number of seconds in a Day, Week and year 2017-08-08 09:06:22 -04:00
bgp_damp.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_debug.c bgpd: Only build json for community when needed 2017-11-17 09:04:26 -05:00
bgp_debug.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_dump.c Revert "*: reindent pt. 2" 2017-07-22 14:52:33 +02:00
bgp_dump.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_ecommunity.c bgpd: rmac ext comm 2017-12-14 10:57:05 -08:00
bgp_ecommunity.h bgpd: deduplicate struct definition 2017-09-13 11:47:35 -04:00
bgp_encap_tlv.c bgpd: Fix off by one error introduced by 8c9cc7bbf6 2017-10-18 18:37:38 -04:00
bgp_encap_tlv.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_encap_types.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_evpn_private.h bgpd, lib, zebra: fix style problems 2017-12-27 11:47:10 -08:00
bgp_evpn_vty.c Merge branch 'master' into evpn-symmetric-routing 2018-01-11 09:00:23 -08:00
bgp_evpn_vty.h bgpd: get rid of afi_header_vty_out() & co. 2017-08-29 08:36:03 +02:00
bgp_evpn.c Merge branch 'master' into evpn-symmetric-routing 2018-01-11 09:00:23 -08:00
bgp_evpn.h bgpd, lib, zebra: fix style problems 2017-12-27 11:47:10 -08:00
bgp_filter.c bgpd: fix clang warning 2017-10-08 23:50:54 +02:00
bgp_filter.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_fsm.c Merge pull request #1591 from qlyoung/bgpd-ringbuf 2018-01-10 19:59:24 -05:00
bgp_fsm.h bgpd: fix bgp_packet.c / bgp_fsm.c organization 2017-11-30 16:18:02 -05:00
bgp_io.c bgpd: update last_update whenever obuf sent 2018-01-22 15:19:15 -05:00
bgp_io.h bgpd: improve bgp thread startup characteristics 2018-01-09 14:27:44 -05:00
bgp_keepalives.c bgpd: turn off keepalives when sending NOTIFY 2017-11-30 16:18:07 -05:00
bgp_keepalives.h bgpd, tests: comment formatting 2017-11-30 16:18:05 -05:00
bgp_label.c bgpd, zebra: Ensure that passed flags is 0 for unregister event 2017-11-13 14:30:17 -05:00
bgp_label.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_lcommunity.c *: fix be32 reading / 24-bit left shift 2017-09-09 19:50:58 +02:00
bgp_lcommunity.h bgpd: Fixed some comments in bgp_lcommunity.h 2017-09-03 06:35:53 +00:00
bgp_main.c bgpd: fix compilation issue with bgpd 2018-01-22 13:52:24 +01:00
bgp_memory.c bgpd: import rt to vrf mapping 2017-12-14 10:57:05 -08:00
bgp_memory.h bgpd: import rt to vrf mapping 2017-12-14 10:57:05 -08:00
bgp_mpath.c *: fix coverity warnings - resource leaks 2017-10-24 19:30:30 -02:00
bgp_mpath.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_mplsvpn.c bgpd: fix 'show bgp ipvX vpn rd' command 2017-10-05 10:11:49 -04:00
bgp_mplsvpn.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_network.c bgpd: small i/o threading improvements 2017-11-30 16:18:01 -05:00
bgp_network.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_nexthop.c bgpd: Reduce multiaccess_check_v4 overhead for subgroups 2017-09-26 20:06:13 -04:00
bgp_nexthop.h bgpd: Reduce multiaccess_check_v4 overhead for subgroups 2017-09-26 20:06:13 -04:00
bgp_nht.c bgpd: fix compilation issue with bgpd 2018-01-22 13:52:24 +01:00
bgp_nht.h bgpd: Cleanup NHT state when underlying VRF goes down 2017-08-17 02:54:14 -07:00
bgp_open.c bgpd: use FOREACH_AFI_SAFI where possible 2017-11-21 13:02:06 -05:00
bgp_open.h bgpd: don't make any assumptions about the size of an enum 2017-07-31 23:45:03 -03:00
bgp_packet.c bgpd: fix race condition causing occasional assert 2018-01-23 18:51:34 -05:00
bgp_packet.h bgpd, tests: comment formatting 2017-11-30 16:18:05 -05:00
bgp_rd.c bgpd: Modify prefix_rd2str to return "Unknown" when unknown 2017-12-11 12:39:16 -05:00
bgp_rd.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_regex.c *: reindent 2017-07-17 14:04:07 +02:00
bgp_regex.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_route.c Merge pull request #1656 from ak503/bgp 2018-01-22 17:03:58 -02:00
bgp_route.h bgpd: advertise/withdraw type-5 routes upon user config 2017-12-14 10:57:07 -08:00
bgp_routemap.c bgpd, zebra: Use sscanf return value 2017-12-04 21:28:19 -05:00
bgp_rpki.c *: make clippy usage more consistent 2017-12-04 19:46:38 -02:00
bgp_snmp.c bgpd: use atomic_* ops on _Atomic variables 2018-01-09 15:40:48 -05:00
bgp_table.c *: reindent 2017-07-17 14:04:07 +02:00
bgp_table.h bgpd: bgp process queue optimization 2017-08-17 17:58:35 +02:00
bgp_updgrp_adv.c bgpd: re-add update-group write triggers 2017-11-30 16:18:03 -05:00
bgp_updgrp_packet.c *: don't use deprecated stream.h macros 2017-12-01 13:51:06 -05:00
bgp_updgrp.c bgpd, tests: comment formatting 2017-11-30 16:18:05 -05:00
bgp_updgrp.h bgpd: intelligently adjust coalesce timer 2017-11-30 16:47:51 -05:00
bgp_vnc_types.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_vpn.c bgpd/ospfd: fix json leaks and blank output 2017-07-26 12:28:56 -03:00
bgp_vpn.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_vty.c bgpd: fix compilation issue with bgpd 2018-01-22 13:52:24 +01:00
bgp_vty.h bgpd: atomize write-quanta, add read-quanta 2017-11-30 16:18:00 -05:00
bgp_zebra.c *: Send/receive the nexthop vrf_id 2018-01-12 09:22:07 -05:00
bgp_zebra.h bgpd: get rid of afi_header_vty_out() & co. 2017-08-29 08:36:03 +02:00
bgpd.c Merge pull request #1627 from qlyoung/bgp-autoshutdown 2018-01-16 15:29:17 -05:00
bgpd.conf.sample bgpd: hide "router bgp" commands also under "address-family ipv4 unicast" 2017-05-04 17:06:13 +00:00
bgpd.conf.sample2 Initial revision 2002-12-13 20:15:29 +00:00
bgpd.conf.vnc.sample bgpd: hide "router bgp" commands also under "address-family ipv4 unicast" 2017-05-04 17:06:13 +00:00
bgpd.h bgpd: Remove peer->hash as that it is unused 2018-01-17 14:17:15 -05:00
IMPLEMENTATION.txt Adjust size complexity estimates. Still not quite right, but closer. 2005-02-15 17:10:03 +00:00
Makefile.am bgpd: convert network statements from DEFUN to DEFPY 2017-12-21 19:07:56 +00:00