]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: check interface pointer before accessing
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 29 May 2020 20:46:29 +0000 (17:46 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Sun, 31 May 2020 11:29:54 +0000 (08:29 -0300)
On some cases (protocol convergence down or daemon exit) we'll have the
interface pointer in the circuit as `NULL`, so don't attempt to access
it.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
isisd/isis_bfd.c

index 0f0d20e39360342ca1eb847644f284bf448ca4c7..a9a1ec7c4749dc0adc21d46da1a0d0f997c3d7ec 100644 (file)
@@ -263,9 +263,10 @@ static void bfd_handle_adj_down(struct isis_adjacency *adj)
                  ZEBRA_BFD_DEST_DEREGISTER);
 
        bfd_peer_sendmsg(zclient, NULL, adj->bfd_session->family,
-                        &adj->bfd_session->dst_ip,
-                        &adj->bfd_session->src_ip,
-                        adj->circuit->interface->name,
+                        &adj->bfd_session->dst_ip, &adj->bfd_session->src_ip,
+                        (adj->circuit->interface)
+                                ? adj->circuit->interface->name
+                                : NULL,
                         0, /* ttl */
                         0, /* multihop */
                         1, /* control plane independent bit is on */
@@ -324,7 +325,9 @@ static void bfd_handle_adj_up(struct isis_adjacency *adj, int command)
        bfd_peer_sendmsg(zclient, circuit->bfd_info, adj->bfd_session->family,
                         &adj->bfd_session->dst_ip,
                         &adj->bfd_session->src_ip,
-                        circuit->interface->name,
+                        (adj->circuit->interface)
+                                ? adj->circuit->interface->name
+                                : NULL,
                         0, /* ttl */
                         0, /* multihop */
                         1, /* control plane independent bit is on */