Skip to content
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: fix, do not access peer->notify.data when it is null (backport #16546) #16625

Merged
merged 2 commits into from
Aug 22, 2024

Commits on Aug 22, 2024

  1. bgpd: fix, do not access peer->notify.data when it is null

    bgp crash on rt2 spotted when 2 commands
    launched consequently:
    T0: rr, config -> router bgp 65004 -> neighbor 192.168.12.2 password
    8888
    T1: rt2, snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.7336.4.2.1
    T2: rt2 bgp is crashed.
    
    config rt2-bgp:
    ---------------
    
    !
    debug bgp updates
    !
    router bgp 65002
     no bgp ebgp-requires-policy
     no bgp network import-check
     no bgp default ipv4-unicast
     neighbor 192.168.12.4 remote-as external
     neighbor 192.168.12.4 timers 1 3
     neighbor 192.168.12.4 timers connect 1
     neighbor 2001:db8::12:4 remote-as external
     neighbor 2001:db8::12:4 timers 1 3
     neighbor 2001:db8::12:4 timers connect 1
     !
     address-family ipv4 unicast
      neighbor 192.168.12.4 activate
      neighbor 192.168.12.4 addpath-tx-all-paths
    
     exit-address-family
     address-family ipv6 unicast
      neighbor 2001:db8::12:4 activate
     exit-address-family
    !
    agentx
    !
    
    config rt2-snmpd:
    agentAddress 127.0.0.1,[::1]
    
    group public_group v1 public
    group public_group v2c public
    access public_group "" any noauth prefix all all none
    
    rocommunity public default
    
    view all included .1
    
    iquerySecName frr
    rouser frr
    
    master agentx
    
    agentXSocket /etc/frr/agentx
    agentXPerms 777 755 root frr
    
    config rt2-zebra:
    -----------------
    
    !
    interface r2-eth0
     ip address 192.168.12.2/24
     ipv6 address 2001:db8::12:2/64
    !
    
    config rr-bgpd:
    ---------------
    
    !
    debug bgp updates
    !
    router bgp 65004
     no bgp ebgp-requires-policy
     no bgp network import-check
     no bgp default ipv4-unicast
     neighbor 192.168.12.1 remote-as external
     neighbor 192.168.12.1 timers 1 3
     neighbor 192.168.12.1 timers connect 1
     neighbor 192.168.12.2 remote-as external
     neighbor 192.168.12.2 timers 1 3
     neighbor 192.168.12.2 timers connect 1
     neighbor 192.168.12.3 remote-as external
     neighbor 192.168.12.3 timers 1 3
     neighbor 192.168.12.3 timers connect 1
     neighbor 2001:db8::12:1 remote-as external
     neighbor 2001:db8::12:1 timers 1 3
     neighbor 2001:db8::12:1 timers connect 1
     neighbor 2001:db8::12:2 remote-as external
     neighbor 2001:db8::12:2 timers 1 3
     neighbor 2001:db8::12:2 timers connect 1
     neighbor 2001:db8::12:3 remote-as external
     neighbor 2001:db8::12:3 timers 1 3
     neighbor 2001:db8::12:3 timers connect 1
     !
     address-family ipv4 unicast
      neighbor 192.168.12.1 activate
      neighbor 192.168.12.1 addpath-tx-all-paths
      neighbor 192.168.12.1 route-server-client
      neighbor 192.168.12.2 activate
      neighbor 192.168.12.2 addpath-tx-all-paths
      neighbor 192.168.12.2 route-server-client
      neighbor 192.168.12.3 activate
      neighbor 192.168.12.3 addpath-tx-all-paths
      neighbor 192.168.12.3 route-server-client
     exit-address-family
     address-family ipv6 unicast
      neighbor 2001:db8::12:1 activate
      neighbor 2001:db8::12:1 route-server-client
      neighbor 2001:db8::12:2 activate
      neighbor 2001:db8::12:2 route-server-client
      neighbor 2001:db8::12:3 activate
      neighbor 2001:db8::12:3 route-server-client
     exit-address-family
    !
    agentx
    !
    
    config rr-zebra:
    ----------------
    !
    interface rr-eth0
     ip address 192.168.12.4/24
     ipv6 address 2001:db8::12:4/64
    !
    
    Fixes: 2d8fff6b81bb ("bgpd: Implement BGP4V2-MIB(bgp4V2PeerErrorsTable)")
    
    Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
    (cherry picked from commit d534605)
    dmytroshytyi-6WIND authored and mergify[bot] committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    5317cbc View commit details
    Browse the repository at this point in the history
  2. topotest: test_bgp_snmp_bgpv4v2_notification

    This test checks the bgp crash on rt2 when 2 commands
    launched consequently:
    T0: rr, config -> router bgp 65004 -> neighbor 192.168.12.2 password 8888
    T1: rt2, snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.7336.4.2.1
    T2: test if rt2 bgp is crashed.
    
    Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
    (cherry picked from commit e23005f)
    dmytroshytyi-6WIND authored and mergify[bot] committed Aug 22, 2024
    Configuration menu
    Copy the full SHA
    5a6d207 View commit details
    Browse the repository at this point in the history