]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Delete EVPN VRF instace if it's not a hidden instance only 16838/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 23 Sep 2024 13:55:31 +0000 (16:55 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 23 Sep 2024 13:55:31 +0000 (16:55 +0300)
```
==5445==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x7ff4c6bedb19 bp 0x7ffc95f2e400 sp 0x7ffc95f2e3c0 T0)
==5445==The signal is caused by a READ memory access.
==5445==Hint: address points to the zero page.
    #0 0x7ff4c6bedb19 in hash_iterate lib/hash.c:246
    #1 0x5618f41f5f59 in bgp_evpn_nh_finish bgpd/bgp_evpn_mh.c:4663
    #2 0x5618f41dcbe8 in bgp_evpn_vrf_delete bgpd/bgp_evpn.c:7336
    #3 0x5618f43bdd35 in bgp_delete bgpd/bgpd.c:4098
    #4 0x5618f417ef6e in bgp_exit bgpd/bgp_main.c:206
    #5 0x5618f417ef6e in sigint bgpd/bgp_main.c:164
    #6 0x7ff4c6cac6c4 in frr_sigevent_process lib/sigevent.c:117
    #7 0x7ff4c6cd8258 in event_fetch lib/event.c:1767
    #8 0x7ff4c6c0dcbc in frr_run lib/libfrr.c:1230
    #9 0x5618f418080d in main bgpd/bgp_main.c:555
    #10 0x7ff4c670c249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #11 0x7ff4c670c304 in __libc_start_main_impl ../csu/libc-start.c:360
    #12 0x5618f417ea20 in _start (/usr/lib/frr/bgpd+0x2e4a20)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV lib/hash.c:246 in hash_iterate
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgpd.c

index f139dc3e75d074f45adf56497b4d24a9471bc068..43aa6344bee16a1acc8fc367d359197c53af5384 100644 (file)
@@ -4095,7 +4095,8 @@ int bgp_delete(struct bgp *bgp)
        }
 
        /* unmap from RT list */
-       bgp_evpn_vrf_delete(bgp);
+       if (!IS_BGP_INSTANCE_HIDDEN(bgp))
+               bgp_evpn_vrf_delete(bgp);
 
        /* unmap bgp vrf label */
        vpn_leak_zebra_vrf_label_withdraw(bgp, AFI_IP);