Set from even if binfo->extra is NULL.

bgpd/bgp_packet.c:bgp_update_packet(): When extracting the peer, don't
  fail to extract it because "binfo->extra" is NULL.  While one should
  certainly avoid dereferencing binfo->extra, that's not a good reason
  not to use binfo->peer.

Fixes https://bugzilla.quagga.net/show_bug.cgi?id=497.
Patch by Eric Sobocinksi.
This commit is contained in:
Greg Troxel 2010-09-17 10:47:49 -04:00
parent cf8a831bcb
commit d3ddb22e90

View File

@ -177,10 +177,11 @@ bgp_update_packet (struct peer *peer, afi_t afi, safi_t safi)
if (rn->prn)
prd = (struct prefix_rd *) &rn->prn->p;
if (binfo && binfo->extra)
if (binfo)
{
tag = binfo->extra->tag;
from = binfo->peer;
if (binfo->extra)
tag = binfo->extra->tag;
}
bgp_packet_set_marker (s, BGP_MSG_UPDATE);