isisd: Fix CID 1568132 (Null pointer dereference)

Null checking the `sra` pointer after dereferencing it causes a
coverity issue. Let's perform the null check before dereferencing the
pointer.

Fixes this coverity issue:

*** CID 1568132:  Null pointer dereferences  (REVERSE_INULL)
/isisd/isis_zebra.c: 1023 in isis_zebra_srv6_adj_sid_install()
1017            struct seg6local_context ctx = {};
1018            uint16_t prefixlen = IPV6_MAX_BITLEN;
1019            struct interface *ifp;
1020            struct isis_circuit *circuit = sra->adj->circuit;
1021            struct isis_area *area = circuit->area;
1022
>>>     CID 1568132:  Null pointer dereferences  (REVERSE_INULL)
>>>     Null-checking "sra" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
1023            if (!sra)
1024                    return;
1025
1026            sr_debug("ISIS-SRv6 (%s): setting adjacency SID %pI6", area->area_tag,
1027                     &sra->sid);
1028

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
This commit is contained in:
Carmine Scarpitta 2023-09-15 12:25:50 +02:00
parent 95eadb5068
commit f3b4e6664f

View File

@ -1017,12 +1017,15 @@ void isis_zebra_srv6_adj_sid_install(struct srv6_adjacency *sra)
struct seg6local_context ctx = {};
uint16_t prefixlen = IPV6_MAX_BITLEN;
struct interface *ifp;
struct isis_circuit *circuit = sra->adj->circuit;
struct isis_area *area = circuit->area;
struct isis_circuit *circuit;
struct isis_area *area;
if (!sra)
return;
circuit = sra->adj->circuit;
area = circuit->area;
sr_debug("ISIS-SRv6 (%s): setting adjacency SID %pI6", area->area_tag,
&sra->sid);