bgpd: Fixed crash upon bgp network import-check command#18387
bgpd: Fixed crash upon bgp network import-check command#18387ton31337 merged 1 commit intoFRRouting:masterfrom
Conversation
a7196eb to
74acf17
Compare
|
In what case is this happening? |
|
we are seeing this issue (inconsistently) on executing “no bgp network import-check” command. BGP is redistributing both IPv4 and IPv6 networks |
BT:
```
3 <signal handler called>
4 0x00005616837546fc in bgp_static_update (bgp=bgp@entry=0x5616865eac50, p=0x561686639e40,
bgp_static=0x561686639f50, afi=afi@entry=AFI_IP6, safi=safi@entry=SAFI_UNICAST) at ../bgpd/bgp_route.c:7232
5 0x0000561683754ad0 in bgp_static_add (bgp=0x5616865eac50) at ../bgpd/bgp_table.h:413
6 0x0000561683785e2e in no_bgp_network_import_check (self=<optimized out>, vty=0x5616865e04c0,
argc=<optimized out>, argv=<optimized out>) at ../bgpd/bgp_vty.c:4609
7 0x00007fdbcc294820 in cmd_execute_command_real (vline=vline@entry=0x561686663000,
```
The program encountered a SEG FAULT when attempting to access pi->extra->vrfleak->bgp_orig because
pi->extra->vrfleak was NULL.
```
(gdb) p pi->extra->vrfleak
$1 = (struct bgp_path_info_extra_vrfleak *) 0x0
(gdb) p pi->extra->vrfleak->bgp_orig
Cannot access memory at address 0x8
```
Added NOT NULL check on pi->extra->vrfleak before accessing pi->extra->vrfleak->bgp_orig
to prevent the segmentation fault.
Signed-off-by: Manpreet Kaur <manpreetk@nvidia.com>
74acf17 to
bc1008b
Compare
|
Commit looks OK. Have you checked all the bgp_orig pointer accesses to make sure that the issue is not present somewhere else ? |
|
And that nothing is accessed in vrfleak pointer without checking its validity ? |
|
I checked and found no issues. The bgp_orig is accessed only after confirming that vrfleak is not null at other places. |
And about other stuff like vrfleak->parent ? |
Found no issue in accessing any of the member of vrfleak |
|
@Mergifyio backport stable/10.3 stable/10.2 stable/10.1 stable/10.0 |
✅ Backports have been createdDetails
|
bgpd: Fixed crash upon bgp network import-check command (backport #18387)
bgpd: Fixed crash upon bgp network import-check command (backport #18387)
bgpd: Fixed crash upon bgp network import-check command (backport #18387)
bgpd: Fixed crash upon bgp network import-check command (backport #18387)
BT:
The program encountered a SEG FAULT when attempting to access pi->extra->vrfleak->bgp_orig because pi->extra->vrfleak was NULL.
Added NOT NULL check on pi->extra->vrfleak before accessing pi->extra->vrfleak->bgp_orig to prevent the segmentation fault.