Go to file
vivek 96885f16b0 BGP: Rework iteration of peer_af_array
While processing references to the macro PEERAF_FOREACH(), aggressive loop
optimization by gcc 4.9.x (probably 4.8 and greater) was resulting in the
generated code not checking on the index as well as eliminating some code.
This was leading to a dereference of invalid memory when a BGP peer came up.

The fix is to scrap this convoluted macro. Two other changes done are to
eliminate overloading of "afindex" and make the loop iterator an integer.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Dave Olson <olson@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>

Ticket: CM-8889
Reviewed By: CCR-4018
Testing Done: Verified failure scenario

Note: This code was added as part of update-groups implementation; when
upstreaming update-groups, this patch should also be included.
2016-01-22 10:56:48 -08:00
babeld Quagga: vrf_id not being set correctly 2015-11-20 11:36:46 -08:00
bgpd BGP: Rework iteration of peer_af_array 2016-01-22 10:56:48 -08:00
cumulus/etc quagga netlink buffer size increase 2015-09-11 05:44:31 -07:00
debian debian: Remove unnecessary dependency on cl-utilties 2015-12-15 17:24:26 -08:00
doc doc, vtysh: Fixup of history handling 2016-01-13 10:49:50 -08:00
fpm fpm: Add public header for Forwarding Plane Manager 2012-11-30 21:41:17 +01:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd Quagga: prefix2str fixup 2015-11-23 13:31:11 -08:00
lib lib:removed onmatch next and onmatch goto from route-map deny 2016-01-13 06:10:18 -08:00
m4 build: fix "pragma weak" mixups 2013-02-09 03:00:12 +01:00
ospf6d ospf6d: Fix double increment of Sequence Number 2016-01-18 16:27:45 -08:00
ospfclient Quagga: Fixup some compile warnings 2015-11-23 13:31:11 -08:00
ospfd Merge branch 'cmaster' of ssh://stash.cumulusnetworks.com:7999/quag/quagga into cmaster 2015-11-27 08:58:52 -08:00
pkgsrc build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
ports build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
redhat build: update quagga.spec.in 2013-02-23 19:43:18 +01:00
ripd Quagga: vrf_id not being set correctly 2015-11-20 11:36:46 -08:00
ripngd Quagga: Fixup some compile warnings 2015-11-23 13:31:11 -08:00
solaris build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
tests Quagga: make check is broken with addpath changes 2015-12-11 21:12:56 +00:00
tools Display the BGP ipv4 unicast configuration under "address-family ipv4 unicast". 2015-10-20 22:00:40 +00:00
vtysh doc, vtysh: Fixup of history handling 2016-01-13 10:49:50 -08:00
watchquagga Fix watchquagga to watch just one daemon 2015-08-24 10:50:21 -07:00
zebra zebra: Fix crash in connected.c due to RA change 2015-12-15 05:22:48 -08:00
.gitignore git: add (generated) cscope files to .gitignore 2015-09-22 11:54:09 -07:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh Add --enable-werror to configure 2015-07-25 16:05:56 -07:00
ChangeLog [trivia] Make 'make dist' happy about ChangeLog expunge 2008-08-23 08:36:42 +01:00
configure.ac build: Make MULTIPATH_NUM a config.h value 2015-12-08 10:02:39 -08:00
COPYING *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
COPYING.LIB *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
HACKING.pending HACKING.pending: Add Quagga-RE details 2012-03-02 11:56:38 +00:00
HACKING.tex HACKING.tex: Change to a LaTeX version of HACKING 2012-03-08 16:14:13 +00:00
INSTALL.quagga.txt build: improve backtrace support/detection 2014-04-01 17:20:44 +02:00
Makefile.am Add json output support for a few BGP show commands 2015-05-19 18:03:48 -07:00
NEWS doc: update NEWS for 0.99.23 changes 2014-06-24 07:12:01 +02:00
README 2004-11-12 Paul Jakma <paul@dishone.st> 2004-11-12 10:30:21 +00:00
README.NetBSD Omit --opaque-lsa from build (now default). 2011-06-28 15:05:05 -04:00
REPORTING-BUGS Update for git and emphasize asking for good reports. 2010-05-05 07:51:26 -04:00
SERVICES 2607/tcp is already used by ospfapi. 2003-12-23 10:42:45 +00:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
TODO doc: update TODO for ospf6d work & bgp multipath 2013-04-16 11:56:11 +02:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

Quagga is free software that manages various IPv4 and IPv6 routing
protocols.

Currently Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, and RIPng as well as very early support for IS-IS.
  
See the file INSTALL.quagga.txt for building and installation instructions.
  
See the file REPORTING-BUGS to report bugs.
  
Quagga is free software. See the file COPYING for copying conditions.