mirror_frr/isisd
Philippe Guibert f4ac971fcc isisd: fix crash when configuring srv6 locator without isis instance
After the ISIS daemon is launched, the configuration of an srv6
locator in zebra triggers a crash:

> #4  0x00007f1f0ea980f3 in core_handler (signo=11, siginfo=0x7ffdb750de70, context=0x7ffdb750dd40)
>     at /build/make-pkg/output/_packages/cp-routing/src/lib/sigevent.c:262
> #5  <signal handler called>
> #6  0x00005651a05783ef in isis_zebra_process_srv6_locator_add (cmd=117, zclient=0x5651a21d9bd0, length=25, vrf_id=0)
>     at /build/make-pkg/output/_packages/cp-routing/src/isisd/isis_zebra.c:1258
> #7  0x00007f1f0ead5ac9 in zclient_read (thread=0x7ffdb750e750) at /build/make-pkg/output/_packages/cp-routing/src/lib/zclient.c:4246
> #8  0x00007f1f0eab19d4 in thread_call (thread=0x7ffdb750e750) at /build/make-pkg/output/_packages/cp-routing/src/lib/thread.c:1825
> #9  0x00007f1f0ea4862e in frr_run (master=0x5651a1f65a40) at /build/make-pkg/output/_packages/cp-routing/src/lib/libfrr.c:1155
> #10 0x00005651a051131a in main (argc=5, argv=0x7ffdb750e998, envp=0x7ffdb750e9c8)
>     at /build/make-pkg/output/_packages/cp-routing/src/isisd/isis_main.c:282
> (gdb) f 6
> #6  0x00005651a05783ef in isis_zebra_process_srv6_locator_add (cmd=117, zclient=0x5651a21d9bd0, length=25, vrf_id=0)
>     at /build/make-pkg/output/_packages/cp-routing/src/isisd/isis_zebra.c:1258
> (gdb) print isis
> $1 = (struct isis *) 0x0
> (gdb) print isis->area_list
> Cannot access memory at address 0x28

The isis pointer is NULL, because no instances have already been
configured on the ISIS instance.
Fix this by checking that there is any isis instance available when
zebra hooks related to srv6 are received.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-09-20 15:07:35 +02:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
AUTHORS Add support of Traffic Engineering to IS-IS 2016-09-03 11:05:50 -04:00
fabricd.c isisd: update struct isis_spftree with algorithm id 2023-04-17 11:06:08 +02:00
fabricd.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_adjacency.c isisd: Extend IS-IS adjacency with SRv6 adj SIDs 2023-09-11 22:11:48 +02:00
isis_adjacency.h isisd: Add support for SRv6 Adjacency SIDs 2023-09-11 22:11:47 +02:00
isis_affinitymap.c isisd: fix potential null pointer in isis_affinity_map_update() 2023-04-20 16:23:50 +02:00
isis_affinitymap.h isisd: add affinity-map configuration hooks 2023-04-18 11:33:15 +02:00
isis_bfd.c *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
isis_bfd.h *: Convert struct event_master to struct event_loop 2023-03-24 08:32:17 -04:00
isis_bpf.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_circuit.c isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_circuit.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
isis_cli.c isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_common.h isisd: Update to the new printfrr ISO format 2023-03-21 15:21:47 +01:00
isis_constants.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_csm.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
isis_csm.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_dlpi.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_dr.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
isis_dr.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
isis_dynhn.c Merge pull request #12698 from Orange-OpenSource/isisd 2023-04-11 09:49:01 -04:00
isis_dynhn.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_errors.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_errors.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_events.c Merge pull request #12698 from Orange-OpenSource/isisd 2023-04-11 09:49:01 -04:00
isis_events.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
isis_flags.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_flags.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_flex_algo.c Revert "lib: add a frr_each_const macro" 2023-09-07 12:08:50 +02:00
isis_flex_algo.h isisd: calculate flex-algo constraint spf 2023-04-18 11:33:15 +02:00
isis_ldp_sync.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
isis_ldp_sync.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_lfa.c isisd: add support of (ti-)lfa to flex-algo 2023-04-18 11:33:15 +02:00
isis_lfa.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_lsp.c isisd: Advertise SRv6 Locator in Prefix Reach TLV 2023-09-11 22:11:41 +02:00
isis_lsp.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
isis_main.c isisd: Add function to terminate the SRv6 module 2023-08-04 09:29:16 +02:00
isis_misc.c isisd: replace gmtime with gmtime_r 2023-07-10 17:06:17 -04:00
isis_misc.h isisd: Update to the new printfrr ISO format 2023-03-21 15:21:47 +01:00
isis_mt.c isisd: Update to the new printfrr ISO format 2023-03-21 15:21:47 +01:00
isis_mt.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_nb_config.c isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_nb_notifications.c isisd: Update to the new printfrr ISO format 2023-03-21 15:21:47 +01:00
isis_nb_state.c isisd: Update to the new printfrr ISO format 2023-03-21 15:21:47 +01:00
isis_nb.c isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_nb.h isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_network.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_pdu_counter.c isisd: Add log-pdu-drops log functionality 2023-04-04 09:23:21 -07:00
isis_pdu_counter.h isisd: Add log-pdu-drops log functionality 2023-04-04 09:23:21 -07:00
isis_pdu.c Merge pull request #13163 from isabelladeleon12/isis_log_drops 2023-04-11 09:55:24 -04:00
isis_pdu.h isisd: Add log-pdu-drops log functionality 2023-04-04 09:23:21 -07:00
isis_pfpacket.c isisd: pfpacket BPF filter with IS-IS over tunnel support 2023-03-12 16:15:27 +01:00
isis_redist.c isisd: add the 'redistribute table' internal support 2023-07-12 14:06:00 +02:00
isis_redist.h isisd: add the 'redistribute table' internal support 2023-07-12 14:06:00 +02:00
isis_route.c isisd: fix merging flex-algo route nodes 2023-04-18 11:33:15 +02:00
isis_route.h isisd: merge algorithm tables 2023-04-18 11:33:15 +02:00
isis_routemap.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
isis_routemap.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_snmp.c Merge pull request #12698 from Orange-OpenSource/isisd 2023-04-11 09:49:01 -04:00
isis_spf_private.h isisd: calculate flex-algo constraint spf 2023-04-18 11:33:15 +02:00
isis_spf.c isisd: Extend SPF algo to process SRv6 locator 2023-09-11 17:35:09 +02:00
isis_spf.h isisd: add option to display isis routes as json 2023-04-18 11:33:15 +02:00
isis_sr.c isisd: update Node-SID flag dynamically 2023-07-29 14:18:39 -03:00
isis_sr.h isisd: update Node-SID flag dynamically 2023-07-29 14:18:39 -03:00
isis_srv6.c isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_srv6.h isisd: Make SRv6 interface configurable 2023-09-11 22:11:51 +02:00
isis_te.c Merge pull request #12933 from Orange-OpenSource/link_state 2023-04-20 18:33:21 +02:00
isis_te.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_tlvs.c isisd: Fix CID 1568129 (Null pointer dereference) 2023-09-15 12:39:45 +02:00
isis_tlvs.h isisd: Add support for SRv6 Adjacency SIDs 2023-09-11 22:11:47 +02:00
isis_tx_queue.c Merge pull request #12698 from Orange-OpenSource/isisd 2023-04-11 09:49:01 -04:00
isis_tx_queue.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_vty_fabricd.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
isis_zebra.c isisd: fix crash when configuring srv6 locator without isis instance 2023-09-20 15:07:35 +02:00
isis_zebra.h isisd: Add functions to install/remove adj SIDs 2023-09-11 22:11:47 +02:00
isisd.c isisd: Make SRv6 Node MSDs customizable 2023-09-11 22:11:50 +02:00
isisd.h isisd: Add YANG path for SRv6 2023-08-04 09:29:15 +02:00
iso_checksum.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
iso_checksum.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
Makefile build: non-recursive isisd 2017-08-04 11:09:50 +02:00
README More cleanup in isisd. 2005-01-01 21:12:56 +00:00
subdir.am isisd: Add isis_srv6.[c, h] files 2023-08-04 09:29:15 +02:00

Constraints

  o Maximum number of interfaces 255