]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: Fix a crash caused by mistakenly dequeueing the bestpath on the
authorJosh Bailey <joshb@google.com>
Thu, 21 Jul 2011 03:51:07 +0000 (20:51 -0700)
committerJosh Bailey <joshb@google.com>
Thu, 21 Jul 2011 03:51:07 +0000 (20:51 -0700)
commit78d92e1721538ec41feb2b1c34712675b830087b
treeb05abed8b5fa33567676bcf0c32b7f56d2660709
parent0b597ef00ec7c7eebd836e2b1d5a266efcd60005
bgpd: Fix a crash caused by mistakenly dequeueing the bestpath on the
multipath list. This causes the multipath list to get truncated
but the multipath count still reflects what it was before truncation.
When we install the route to zebra we fail to fill the nexthop
array with the number of nexthop pointers indicated by the
multipath count and this leads to a NULL pointer crash in
stream_put_in_addr().

Changes:

* bgpd/bgp_mpath.c
  * bgp_info_mpath_update(): If new_mpath is the bestpath we should
    just move to the next mp_list node. Move dequeue of new_mpath and
    the code that updates next_mpath to inside the check that
    new_mpath is not the bestpath.
bgpd/bgp_mpath.c