frr/bgpd
Quentin Young aba5353c17 bgpd: fix memory leak when parsing capabilities
Duplicated domain name capability messages cause memory leak. The amount
of leaked memory is proportional to the size of the duplicated
capabilities. This bug was introduced in 2015.

To hit this, a BGP OPEN message must contain multiple FQDN capabilities.
Memory is leaked when the hostname portion of the capability is of
length 0, but the domainname portion is not, for any of the duplicated
capabilities beyond the first one.

https://tools.ietf.org/html/draft-walton-bgp-hostname-capability-00

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2020-01-16 12:50:27 -05:00
..
rfapi bgpd: remove bgp_attr_dup 2019-12-05 11:05:32 -05:00
rfp-example Treewide: use ANSI function definitions 2019-01-24 11:21:59 +01:00
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
bgp_addpath.c *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_addpath.h *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_addpath_types.h bgpd: Re-use TX Addpath IDs where possible 2018-11-10 00:16:36 +00:00
bgp_advertise.c bgpd: add timestamp to bgp_adj_in 2019-08-30 19:00:45 +02:00
bgp_advertise.h bgpd: add timestamp to bgp_adj_in 2019-08-30 19:00:45 +02:00
bgp_aspath.c Merge pull request #5305 from ton31337/feature/draft-ietf-idr-deprecate-as-set-confed-set 2019-12-03 21:29:09 -05:00
bgp_aspath.h bgpd: Reject routes having AS_SET or AS_CONFED_SET 2019-11-14 19:19:04 +02:00
bgp_attr.c Merge pull request #5418 from qlyoung/fix-bgp-prefix-sid-missing-boundscheck 2020-01-08 21:59:07 +02:00
bgp_attr.h bgpd: fix missing bounds checks for psid attr 2020-01-03 14:06:31 -05:00
bgp_attr_evpn.c Merge pull request #3869 from qlyoung/cocci-fixes 2019-03-06 15:54:44 +01:00
bgp_attr_evpn.h bgpd: parse and comapre rmac attr against self mac 2019-03-04 09:56:05 -08:00
bgp_bfd.c bfdd: Handling local and remote admin-down 2019-10-28 21:38:20 -07:00
bgp_bfd.h bgpd/ospfd: make bgp and ospf json response a bit more consistent 2018-08-30 12:40:18 +00:00
bgp_bmp.c bgpd/bmp: print active outbound connections 2019-12-11 13:36:24 +01:00
bgp_bmp.h lib,nhrpd,bgpd/bmp: pass resolver failure details 2019-12-11 13:33:36 +01:00
bgp_btoa.c bgpd: Untrusted argument (Coverity 1399380) 2018-06-19 15:00:25 +02:00
bgp_clist.c *: fix ctype (isalpha & co.) casts 2019-08-06 16:54:52 +02:00
bgp_clist.h bgpd : Support for exact-match in match clause for lcommunity 2019-06-19 04:37:51 -07:00
bgp_community.c bgpd : route agg. with comm attr is consuming lot of cycles. 2019-09-24 02:54:19 -07:00
bgp_community.h bgpd : route agg. with comm attr is consuming lot of cycles. 2019-09-24 02:54:19 -07:00
bgp_damp.c bgpd: Rework BGP dampening to be per AFI/SAFI 2019-11-11 09:52:40 +02:00
bgp_damp.h bgpd: Rework BGP dampening to be per AFI/SAFI 2019-11-11 09:52:40 +02:00
bgp_debug.c *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_debug.h *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_dump.c bgpd: use bgp->name_pretty in debugs and add vrf to some output 2019-11-07 07:20:41 -05:00
bgp_dump.h bgpd: hook for bgp peer status change events 2019-08-13 11:59:27 -07:00
bgp_ecommunity.c bgpd: use safe functions to work with ecom attrs 2019-11-22 03:26:28 -05:00
bgp_ecommunity.h bgpd: use safe functions to work with ecom attrs 2019-11-22 03:26:28 -05:00
bgp_encap_tlv.c *: remove null check before XFREE 2019-02-25 23:00:46 +00:00
bgp_encap_tlv.h *: reindent 2017-07-17 14:04:07 +02:00
bgp_encap_types.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
bgp_errors.c bgpd: BGP_ERR_MULTIPLE_INSTANCE_NOT_SET is an impossible condition 2019-06-18 09:26:00 -04:00
bgp_errors.h bgpd: BGP_ERR_MULTIPLE_INSTANCE_NOT_SET is an impossible condition 2019-06-18 09:26:00 -04:00
bgp_evpn.c bgpd: fix unaligned access to addpath id 2020-01-07 07:47:13 -08:00
bgp_evpn.h bgpd: evpn pip parse vrr mac 2019-11-22 07:53:30 -08:00
bgp_evpn_private.h bgpd: evpn pip handle svi ip route 2019-11-22 07:53:32 -08:00
bgp_evpn_vty.c bgpd: fix advertise pip running config 2020-01-06 17:00:00 -08:00
bgp_evpn_vty.h bgpd: get rid of afi_header_vty_out() & co. 2017-08-29 08:36:03 +02:00
bgp_filter.c bgpd: Remove depracated ip prefix for as-path/extcommunity/large/communities 2019-10-08 08:39:55 +03:00
bgp_filter.h bgpd: Validate as-path in show bgp regexp 2019-04-23 11:25:35 +03:00
bgp_flowspec.c bgpd: Do not send UPDATE message with maximum-prefix 2019-04-24 14:51:06 +03:00
bgp_flowspec.h bgpd: Convert binfo to path 2018-10-09 14:26:30 -04:00
bgp_flowspec_private.h bgpd: support for show bgp ipv4 flowspec 2018-03-30 14:01:05 +02:00
bgp_flowspec_util.c bgpd: upon bgp fs study, determine if iprule can be used 2019-01-29 14:15:09 +01:00
bgp_flowspec_util.h bgpd: flowspec redirect IP info is retrieved into nh tracking 2018-12-28 18:10:26 +01:00
bgp_flowspec_vty.c bgpd: struct bgp_path_info *->attr must not be NULL 2019-10-16 13:38:29 -04:00
bgp_fsm.c bgpd: Send notification to the peer on FSM error 2019-12-30 17:11:04 +02:00
bgp_fsm.h *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_io.c *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_io.h bgpd: raise default & max r/w quanta to 64 2019-10-14 18:41:53 +00:00
bgp_keepalives.c *: generously apply const 2019-12-02 15:01:29 +01:00
bgp_keepalives.h bgpd: update pthreads to use lib changes 2018-01-24 15:30:55 -05:00
bgp_label.c bgpd: fix unaligned access to addpath id 2020-01-07 07:47:13 -08:00
bgp_label.h bgpd: IPv4 LU withdraw using 0x000000 label 2019-11-20 15:28:46 +03:00
bgp_labelpool.c lib, zebra: support label chunk requests for SRGB 2019-07-10 15:20:27 +02:00
bgp_labelpool.h bgpd: replace label pool fifo with DECLARE_LIST 2019-04-27 19:33:45 +02:00
bgp_lcommunity.c bgpd: fix heap buffer overflow in lcom -> str enc 2019-11-22 03:26:31 -05:00
bgp_lcommunity.h bgpd : route agg. with lcomm attribute is consuming lot of cycles. 2019-09-24 02:53:51 -07:00
bgp_mac.c bgpd: Prevent usage after free in bgp_mac.c 2019-10-31 20:23:23 -04:00
bgp_mac.h bgpd: parse and comapre rmac attr against self mac 2019-03-04 09:56:05 -08:00
bgp_main.c lib: rename memory_vty.c to lib_vty.c 2019-12-06 15:13:29 +01:00
bgp_memory.c bgpd/bmp: convert BMP code into module 2019-08-30 19:00:45 +02:00
bgp_memory.h bgpd/bmp: convert BMP code into module 2019-08-30 19:00:45 +02:00
bgp_mpath.c bgpd: remove bgp_attr_dup 2019-12-05 11:05:32 -05:00
bgp_mpath.h bgpd: Rename various variable names to something more appropriate 2018-10-09 14:26:30 -04:00
bgp_mplsvpn.c bgpd: fix unaligned access to addpath id 2020-01-07 07:47:13 -08:00
bgp_mplsvpn.h bgpd: router bgp export leaked vpn routes 2019-06-17 15:41:50 -07:00
bgp_network.c bgpd: Add ability to set tcp socket buffer size 2019-10-16 07:42:05 -04:00
bgp_network.h bgpd: add support for MD5 auth on listen ranges 2019-04-16 15:26:20 +00:00
bgp_nexthop.c bgpd: Implementing a hash table for connected address - ipv4/ipv6 2019-11-20 01:23:11 +05:30
bgp_nexthop.h bgpd: Implementing a hash table for connected address - ipv4/ipv6 2019-11-20 01:23:11 +05:30
bgp_nht.c bgpd: skip ra for blackhole nexthop type 2019-12-29 22:16:51 -08:00
bgp_nht.h bgpd: Remove not used bgp_find_nexthop() function 2019-11-08 15:04:29 +02:00
bgp_open.c bgpd: fix memory leak when parsing capabilities 2020-01-16 12:50:27 -05:00
bgp_open.h bgpd: Remove trailing whitespaces from some header files 2019-09-17 11:28:48 +03:00
bgp_packet.c bgpd: Remove misleading 'NOTIFICATION' string from End-of-RIB log 2019-12-18 15:58:26 -05:00
bgp_packet.h bgpd: Remove trailing whitespaces from some header files 2019-09-17 11:28:48 +03:00
bgp_pbr.c bgpd, ospfd, zebra: Do not use 0 as VRF_DEFAULT 2020-01-15 08:29:36 -05:00
bgp_pbr.h bgp, zebra, lib: add protocol support for iptables 2019-07-08 08:36:45 +02:00
bgp_rd.c bgpd: fix large route-distinguisher's format 2020-01-06 17:03:51 +09:00
bgp_rd.h bgpd: Auto RD definitions and encoding 2018-04-25 12:39:16 -04: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 bgpd: fix unaligned access to addpath id 2020-01-07 07:47:13 -08:00
bgp_route.h bgpd: evpn pip handle svi ip route 2019-11-22 07:53:32 -08:00
bgp_routemap.c *: make all route_map_rule_cmd const 2019-11-30 00:38:32 +01:00
bgp_rpki.c *: make all route_map_rule_cmd const 2019-11-30 00:38:32 +01:00
bgp_snmp.c *: strip trailing whitespace 2019-09-30 16:44:43 +00:00
bgp_table.c bgpd: Prevent crash in bgp_table_range_lookup 2019-12-02 09:37:47 -05:00
bgp_table.h bgpd: Store reason why bestpath was choosen 2019-05-15 21:17:52 -04:00
bgp_updgrp.c bgpd: Add missing whitespace in update_subgroup_remove_peer_internal() 2019-11-15 11:09:17 +02:00
bgp_updgrp.h bgpd : no neighbor <> send-community large is not working dynamically 2019-05-18 09:15:45 -07:00
bgp_updgrp_adv.c bgpd: add addpath ID to adj_out tree sort 2020-01-15 10:12:44 -08:00
bgp_updgrp_packet.c bgpd: stop sending nexthop set by "route-map in" to eBGP peers 2019-09-25 13:54:39 -07:00
bgp_vnc_types.h bgpd: Cleanup of bgp daemon code 2018-07-07 22:51:13 +02:00
bgp_vpn.c bgpd: Blank RD in "sh bgp l2vpn evpn all neighbors <ip> advertised-routes json" 2019-11-21 15:30:00 -08:00
bgp_vpn.h bgpd/ospfd: make bgp and ospf json response a bit more consistent 2018-08-30 12:40:18 +00:00
bgp_vty.c bgpd: Time to deprecate bgpTimerUp 2020-01-04 00:41:47 +02:00
bgp_vty.h bgpd: use new defaults system (v2) 2019-12-06 15:13:32 +01:00
bgp_zebra.c bgpd: debug convert to snprintf 2020-01-10 11:15:36 -08:00
bgp_zebra.h bgpd: move config-write to bgp_vty.c 2019-12-06 15:13:32 +01:00
bgpd.c bgpd: use new defaults system (v2) 2019-12-06 15:13:32 +01:00
bgpd.conf.sample doc: Update documentation about multiple-instance 2019-06-18 09:31:35 -04:00
bgpd.conf.sample2
bgpd.conf.vnc.sample
bgpd.h bgpd: use new defaults system (v2) 2019-12-06 15:13:32 +01:00
IMPLEMENTATION.txt bgpd: Convert struct bgp_info to struct bgp_path_info 2018-10-09 14:14:25 -04:00
Makefile build: non-recursive bgpd & rfp 2018-09-08 21:25:59 +02:00
subdir.am doc: rename man pages to frr-* 2020-01-15 14:05:11 +01:00
valgrind.supp bgpd: make valgrind suppression more generic 2019-02-19 22:00:34 +01:00