mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Fixes BGPv6 bug - mandatory attributes weren't validated;
This commit is contained in:
parent
8f0c887a52
commit
f307842ad8
@ -1355,11 +1355,11 @@ bgp_decode_attrs(struct bgp_conn *conn, byte *attr, unsigned int len, struct lin
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef IPV6
|
#ifdef IPV6
|
||||||
if (seen[BA_MP_REACH_NLRI / 8] & (1 << (BA_MP_REACH_NLRI % 8)))
|
/* If we received MP_REACH_NLRI we should check mandatory attributes */
|
||||||
|
if (bgp->mp_reach_len != 0)
|
||||||
mandatory = 1;
|
mandatory = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* If there is no (reachability) NLRI, we should exit now */
|
/* If there is no (reachability) NLRI, we should exit now */
|
||||||
if (! mandatory)
|
if (! mandatory)
|
||||||
return a;
|
return a;
|
||||||
@ -1396,6 +1396,7 @@ bgp_decode_attrs(struct bgp_conn *conn, byte *attr, unsigned int len, struct lin
|
|||||||
/* If there's no local preference, define one */
|
/* If there's no local preference, define one */
|
||||||
if (!(seen[0] & (1 << BA_LOCAL_PREF)))
|
if (!(seen[0] & (1 << BA_LOCAL_PREF)))
|
||||||
bgp_attach_attr(&a->eattrs, pool, BA_LOCAL_PREF, 0);
|
bgp_attach_attr(&a->eattrs, pool, BA_LOCAL_PREF, 0);
|
||||||
|
|
||||||
return a;
|
return a;
|
||||||
|
|
||||||
loop:
|
loop:
|
||||||
|
Loading…
Reference in New Issue
Block a user