mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 16:48:43 +00:00
Fixes serious bug in BGP add-path
Temporary rta is reused in BGP, while rta_lookup() breaks it. Thanks to Alexander Chernikov for analysing the problem.
This commit is contained in:
parent
af454f9b7c
commit
509aab5deb
@ -999,7 +999,11 @@ bgp_rte_update(struct bgp_proto *p, ip_addr prefix, int pxlen,
|
|||||||
if (!*a)
|
if (!*a)
|
||||||
{
|
{
|
||||||
a0->src = *src;
|
a0->src = *src;
|
||||||
|
|
||||||
|
/* Workaround for rta_lookup() breaking eattrs */
|
||||||
|
ea_list *ea = a0->eattrs;
|
||||||
*a = rta_lookup(a0);
|
*a = rta_lookup(a0);
|
||||||
|
a0->eattrs = ea;
|
||||||
}
|
}
|
||||||
|
|
||||||
net *n = net_get(p->p.table, prefix, pxlen);
|
net *n = net_get(p->p.table, prefix, pxlen);
|
||||||
|
Loading…
Reference in New Issue
Block a user