mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 13:06:51 +00:00
bgpd: fix crash when polling bgp4v2PathAttrTable
we have
(gdb) p *path->attr->aspath
$1 = {refcnt = 3, segments = 0x0, json = 0x0, str = 0x55723d0b7470 "", str_len = 0, asnotation = ASNOTATION_PLAIN}
It looks like this aspath is empty, resulting in a size 0 and NULL pointer for path->attr->aspath->segments which leads to the SIGSEGV
fixe: return 0 when segments is null.
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
(cherry picked from commit ee2f1b85cf
)
This commit is contained in:
parent
dbda55017c
commit
2432b6481e
@ -933,7 +933,9 @@ static uint8_t *bgp4v2PathAttrTable(struct variable *v, oid name[],
|
||||
else
|
||||
return SNMP_IPADDRESS(bgp_empty_addr);
|
||||
case BGP4V2_NLRI_AS_PATH_CALC_LENGTH:
|
||||
return SNMP_INTEGER(path->attr->aspath->segments->length);
|
||||
return SNMP_INTEGER((path->attr->aspath && path->attr->aspath->segments)
|
||||
? path->attr->aspath->segments->length
|
||||
: 0);
|
||||
case BGP4V2_NLRI_AS_PATH:
|
||||
return aspath_snmp_pathseg(path->attr->aspath, var_len);
|
||||
case BGP4V2_NLRI_PATH_ATTR_UNKNOWN:
|
||||
|
Loading…
Reference in New Issue
Block a user