-
Notifications
You must be signed in to change notification settings - Fork 1.4k
bgpd: Fixed crash upon bgp network import-check command #18387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bgpd: Fixed crash upon bgp network import-check command #18387
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@Mergifyio backport stable/10.3 stable/10.2 stable/10.1 stable/10.0 |
✅ Backports have been created
|
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.