Fixes possible buffer overflow when printing BGP attributes.
Thanks to Alexander V. Chernikov for the patch.
This commit is contained in:
parent
2918e61046
commit
6c4df70373
1 changed files with 4 additions and 2 deletions
|
@ -1576,16 +1576,18 @@ bgp_get_attr(eattr *a, byte *buf, int buflen)
|
|||
{
|
||||
unsigned int i = EA_ID(a->id);
|
||||
struct attr_desc *d;
|
||||
int len;
|
||||
|
||||
if (ATTR_KNOWN(i))
|
||||
{
|
||||
d = &bgp_attr_table[i];
|
||||
buf += bsprintf(buf, "%s", d->name);
|
||||
len = bsprintf(buf, "%s", d->name);
|
||||
buf += len;
|
||||
if (d->format)
|
||||
{
|
||||
*buf++ = ':';
|
||||
*buf++ = ' ';
|
||||
d->format(a, buf, buflen);
|
||||
d->format(a, buf, buflen - len - 2);
|
||||
return GA_FULL;
|
||||
}
|
||||
return GA_NAME;
|
||||
|
|
Loading…
Reference in a new issue