mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-09 20:58:44 +00:00
Fixes bug in BGPv6 causing crash by checking missing attributes.
This commit is contained in:
parent
e366625c0e
commit
b9539e78d8
@ -1359,17 +1359,19 @@ bgp_decode_attrs(struct bgp_conn *conn, byte *attr, unsigned int len, struct lin
|
||||
mandatory = 1;
|
||||
#endif
|
||||
|
||||
|
||||
/* If there is no (reachability) NLRI, we should exit now */
|
||||
if (! mandatory)
|
||||
return a;
|
||||
|
||||
/* Check if all mandatory attributes are present */
|
||||
if (mandatory)
|
||||
for(i=0; i < ARRAY_SIZE(bgp_mandatory_attrs); i++)
|
||||
{
|
||||
for(i=0; i < ARRAY_SIZE(bgp_mandatory_attrs); i++)
|
||||
code = bgp_mandatory_attrs[i];
|
||||
if (!(seen[code/8] & (1 << (code%8))))
|
||||
{
|
||||
code = bgp_mandatory_attrs[i];
|
||||
if (!(seen[code/8] & (1 << (code%8))))
|
||||
{
|
||||
bgp_error(conn, 3, 3, &bgp_mandatory_attrs[i], 1);
|
||||
return NULL;
|
||||
}
|
||||
bgp_error(conn, 3, 3, &bgp_mandatory_attrs[i], 1);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user