Commit Graph

33595 Commits

Author SHA1 Message Date
Donald Sharp
4eaf14e1e3 bgpd: Prevent use after free from coverity's perspective
Prevent a use after free from coverity's perspective.  A
bgp node may have been freed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-09-19 15:48:57 -04:00
David Lamparter
e7737c89eb lib: constrain hash table "tabshift" both ways
The previous change to assume() did address the coverity warning about
one direction of the shift in HASH_KEY, let's constrain the other in
HASH_SIZE as well.

To be fair, the hash table *will* break at 1G entries, but at that point
we have other problems RAM-wise.  (Could bump the thing to 64-bit, but
then we need better item hash functions too on every single user.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-09-19 21:09:17 +02:00
Donald Sharp
5f57d30ba4 pimd: Use a better name for oil_parent
Use oil_incoming_vif instead of oil_parent.  I had
to go look this up as that I failed to remember that
the linux kernel calls this parent for some bizarre
reason.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-09-19 13:03:50 -04:00
Russ White
e7f0bbb198
Merge pull request #14299 from SaiGomathiN/14286
pimd,pim6d: Resolving the YANG datatype Inconsistency for PIM Hello Interval
2023-09-19 11:36:04 -04:00
Russ White
7e1eb2a1e0
Merge pull request #14414 from opensourcerouting/coverity-assume
lib: another attempt at Coverity false positives
2023-09-19 10:19:07 -04:00
Russ White
ffbff9b515
Merge pull request #14436 from opensourcerouting/fix/set_mss_for_passive_nodes
bgpd: Set TCP MSS for the socket even if the session is set to passive
2023-09-19 10:18:14 -04:00
Russ White
fd8b00ed53
Merge pull request #14420 from opensourcerouting/fix/remove_private_asn_after_route_map
bgpd: Remove private ASNs after we modify the as-path with the route-map
2023-09-19 10:16:33 -04:00
Russ White
a9a89805ec
Merge pull request #14398 from m-varasteh/ospfd-rfc5709
ospfd: add support for RFC 5709 OSPFv2 HMAC-SHA Cryptographic Authentication
2023-09-19 10:14:14 -04:00
Russ White
1e00784731
Merge pull request #14382 from opensourcerouting/feature/long_lived_graceful_restart_dynamic_capability_split
bgpd: Handle LLGR capability using dynamic capabilities
2023-09-19 10:12:35 -04:00
Russ White
078dc7bd6e
Merge pull request #14350 from FRIDM636/pcep-no-commands
pathd: add no command for pce/pce-config options
2023-09-19 10:08:43 -04:00
Francois Dumontet
b8fe1c16de bgpd: snmp MIB bgp4v2 fix indexes in OID
currently snmpwalk give results such :
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6z.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6z.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

the expected result is the following

BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv4.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 =
 INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv4.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex
-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03

in draft-ietf-idr-bgp4-mibv2-11

INDEX for Bgp4V2PeerEntry is define as follows
INDEX {
          bgp4V2PeerInstance,
          bgp4V2PeerRemoteAddrType,
          bgp4V2PeerRemoteAddr
      }

the peer instance is defined as follows
OBJECT bgp4V2PeerInstance
        SYNTAX Unsigned32 (1..4294967295)

more this interpretation is conformant with the snmpwalk implementation
for instance we obtain the following result

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemotePort.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 179

swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemoteAs.1.ipv4.10.125.0.2 = Gauge32: 65200

since currently we are not supporting  multi instance for bgp peer in
SNMP the bgp4V2PeerInstance value is set to 1 coforming to:

"Implementations that do not support multiple routing instances should return 1 for this object."

test is updated accordingly to fix.
currently index for bgp4V2NlriEntry is not coformant to MIB definition

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-19 14:26:41 +02:00
Francois Dumontet
f73eaedcc3 bgpd: snmp MIB bg4v2 fix invalid address Type value
currently an snmpwalk gives:
BGP4V2-MIB::bgp4V2PeerFsmEstablishedTime.1.ipv6z.10.125.0.2 = Gauge32: 103 seconds
BGP4V2-MIB::bgp4V2PeerFsmEstablishedTime.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 103 seconds

but ipv6z and dns are not the valid address type this must be ipv4 and
ipv6.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-19 14:26:41 +02:00
Francois Dumontet
3ccb263c24 bgpd: snmp MIB bg4v2 fix wrong type values
snmpwalk exhibit the followinfg errors:

BGP4V2-MIB::bgp4V2PeerLastErrorReceivedTime.1.ipv6z.10.125.0.2 = Wrong Type (should be Timeticks): Gauge32: 0
BGP4V2-MIB::bgp4V2PeerLastErrorReceivedTime.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Wrong Type (should be Timeticks): Hex-STRING: 00 00 00 00 00 00 00 00
BGP4V2-MIB::bgp4V2PeerLastErrorSentTime.1.ipv6z.10.125.0.2 = Wrong Type (should be Timeticks): Gauge32: 178
BGP4V2-MIB::bgp4V2PeerLastErrorSentTime.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Wrong Type (should be Timeticks): Hex-STRING: B2 00 00 00 00 00 00 00
Error: OID not increasing: BGP4V2-MIB::bgp4V2NlriIndex.1.4.10.200."".0.24.10.125.0.2
 >= BGP4V2-MIB::bgp4V2NlriIndex.1.4.10.200."".0.24."".0.0.0

draft-ietf-idr-bgp4-mibv2-11 states the following

bgp4V2PeerLastErrorReceivedTime OBJECT-TYPE
    SYNTAX     TimeStamp
bgp4V2PeerLastErrorSentTime OBJECT-TYPE
    SYNTAX     TimeStamp

we set the correct values

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-19 14:26:41 +02:00
Francois Dumontet
b8f3f0b86f bgpd: initialization in bgp_notify_admin_message function
buffer buff is fully zeroed by a memset in bgp_notify_admin_message
function

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-19 14:25:18 +02:00
Donatas Abraitis
1f5809e44f
Merge pull request #14422 from cscarpitta/bugfix/fix-coverity-isis-srv6
isisd: Fix a bunch of coverity issues in IS-IS
2023-09-19 14:43:22 +03:00
Donatas Abraitis
6cd8f13fac tests: Check if TCP MSS is synced if using a passive neighbor
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-18 22:54:53 +03:00
Donatas Abraitis
81ece63e3e bgpd: Set TCP min MSS per listener
Set only if at least one peer is in passive mode.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-18 22:34:45 +03:00
Mark Stapp
9fc53b1380
Merge pull request #14429 from opensourcerouting/ospf6d-warnfix-20230916
ospf6d: fix uninitialized warnings
2023-09-18 15:16:02 -04:00
Louis Scalbert
8074d6f438 doc: add information to display bgp-ls attributes
Add information to display bgp-ls attributes

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:07:35 +02:00
Louis Scalbert
5727195cbf tests: add link-state attribute display in bgp_linkstate_topo1
Add some attributes to display in the injector and check the output.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:07:34 +02:00
Louis Scalbert
8b531b1107 bgpd: store and send bgp link-state attributes
Add the ability to store a raw copy of the incoming BGP Link-State
attributes and to redistribute them as is to other routes.

New types of data BGP_ATTR_LS and BGP_ATTR_LS_DATA are defined.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-09-18 15:07:32 +02:00
Louis Scalbert
115f4f1ddd doc: add the bgp link-state user documentation
Add the bgp link-state user documentation

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:30 +02:00
Louis Scalbert
709fe971fd doc: move bgp references at the right place
move bgp references at the right place

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:24 +02:00
Louis Scalbert
a0e6cd4c8f tests: add bgp_linkstate_topo1
Use an external BGP injector tool in router r1. Check that bgpd on r2 is
able to decode BGP-LS prefixes and re-encode to the r3 instance.

Link: https://github.com/louis-6wind/bgp_injector
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:23 +02:00
Louis Scalbert
de38eada9c bgpd: add linkstate debug
Add the "debug bgp linkstate" command to display incoming link-states
prefixes.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:17 +02:00
Louis Scalbert
f11f67033f bgpd: add show bgp link-state link-state commands
Add the "show bgp link-state link-state" following commands:

> r3# show bgp link-state link-state ?
>  <cr>
>  all            Display the entries for all address families
>  detail-routes  Display detailed version of all routes
>  json           JavaScript Object Notation
>  neighbors      Detailed information on TCP and BGP neighbor connections
>  regexp         Display routes matching the AS path regular expression
>  summary        Summary of BGP neighbor status
>  version        Display prefixes with matching version numbers
>  wide           Increase table width for longer prefixes

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:13 +02:00
Louis Scalbert
38a7e20fc9 bgpd: add bgp default link-state command
Add the "bgp default link-state" command to the "router bgp" context.

> router bgp 65000
>  bgp default link-state

When this command is set, the "link-state/link-state" AFI/SAFI is
activated on all neighbors that are directly specified within the
"router bgp" unless explicitly deactivated:

> router bgp 65000
>  bgp default link-state
>  neighbor 10.0.0.1 remote-as 65001
>  address-family link-state link-state
>   no neighbor 10.0.0.1 activate

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:09 +02:00
Louis Scalbert
39fb34275f bgpd: do not announce link-state routes to zebra
Link-state prefixes are only intended to be read for a link-state
consumer (i.e. a controler). They cannot be installed in Forwarding
Information Base (FIB).

Do not announce them to zebra.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:06:07 +02:00
Louis Scalbert
7e0d9ff8ba bgpd: display link-state prefixes detail
BGP link-state prefixes are displayed in the form of NLRI-TYPE /
Prefix-Length.

> r2# show bgp all
>
> For address family: Link State
> BGP table version is 8, local router ID is 192.0.2.2, vrf id 0
> Default local pref 100, local AS 65002
>     Network          Next Hop            Metric LocPrf Weight Path
>  *> Link/153                                0 65001 i
>  *> IPv6-Prefix/77                          0 65001 i
>  *> IPv4-Prefix/57                          0 65001 i
>  *> Node/49                                 0 65001 i
>  *> Node/45                                 0 65001 i

Add a lib prefix display hook in bgpd to display properly all the details.

> r2# show bgp all
>
> For address family: Link State
> BGP table version is 8, local router ID is 192.0.2.2, vrf id 0
> Default local pref 100, local AS 65002
>     Network          Next Hop            Metric LocPrf Weight Path
>  *> Link OSPFv3 ID:0xffffffffffffffff {Local {AS:4294967295 ID:4294967295 Area:4294967295 Rtr:10.10.10.11:2.2.2.2} Remote {AS:4294967295 ID:4294967295 Area:4294967295 Rtr:10.10.10.10:1.1.1.1} IPv4:10.1.0.1 Neigh-IPv4:10.1.0.2 IPv6:2001::1 Neigh-IPv6:2001::2 MT:0,2}/153
>                                            0 65001 i
>  *> IPv6-Prefix OSPFv3 ID:0x20 {Local {AS:65001 ID:0 Area:0 Rtr:10.10.10.10} MT:2 OSPF-Route-Type:1 IPv6:12:12::12:12/128}/77
>                                            0 65001 i
>  *> IPv4-Prefix OSPFv2 ID:0x20 {Local {AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1} IPv4:89.10.11.0/24}/57
>                                            0 65001 i
>  *> Node OSPFv2 ID:0x20 {Local {AS:65001 ID:0 Area:0 Rtr:10.10.10.10:1.1.1.1}}/49
>                                            0 65001 i
>  *> Node OSPFv2 ID:0x20 {Local {AS:65001 ID:0 Area:0 Rtr:10.10.10.10}}/45
>                                            0 65001 i

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 15:05:54 +02:00
Louis Scalbert
3098772467 bgpd: do not display vty output headers for link-state prefixes
When displaying the link-state prefixes with "show bgp link-state
link-state" command, the following output headers are not needed:

> Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
> 	       i internal, r RIB-failure, S Stale, R Removed
> Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
> Origin codes:  i - IGP, e - EGP, ? - incomplete
> RPKI validation codes: V valid, I invalid, N Not found

Do not display these headers for link-state SAFI.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 14:57:03 +02:00
Louis Scalbert
bdb3fa3b92 bgpd, lib: extend the size of the prefix string buffer
BGP Link-State prefixes are special prefixes that contains a lot of
data.

Extend the length of the prefix string buffer in order to display
properly this type of prefixes with the next commits.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 14:57:03 +02:00
Louis Scalbert
0c94fb9cc8 bgpd: send bgp link-state prefixes
Add the ability to send link-state prefixes that are in the BGP table.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-09-18 14:57:03 +02:00
Louis Scalbert
39a8d354c1 bgpd: store bgp link-state prefixes
Add the ability to store link-state prefixes in the BGP table.
Store a raw copy of the BGP link state NLRI TLVs as received in the
packet in 'p.u.prefix_linkstate.ptr'.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 14:57:03 +02:00
Donatas Abraitis
84e14c14dc bgpd: Show TCP MSS per neighbor always, despite if it's configured or not
To show the TCP MSS value per neighbor you have to configure it, otherwise you
don't see the actual value.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-18 15:54:43 +03:00
Louis Scalbert
c8172af682 lib: add link-state prefixes
Add to the library the link-state type of prefixes.

Link-state prefixes contain much more data than the current prefixes and
they only make sense for BGP Link-State. Storing all the data in "struct
prefix" is not relevant because it would increase the memory usage of
all daemons. Instead a pointer to a structure that contains all the
information is used. Printing link-state prefixes can be delegated to a
hook function.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 14:42:26 +02:00
Donatas Abraitis
232470f3b7 bgpd: Set TCP MSS for the socket even if the session is set to passive
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-18 15:42:06 +03:00
Louis Scalbert
67fe40676e bgpd: accept bgp link-state capability
Accept the BGP Link-State AFI/SAFI capability when received from a peer
OPEN message.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-09-18 14:39:59 +02:00
Louis Scalbert
ae2f3bb5b4 bgpd: add bgp link-state address-family configuration context
Add the bgp link-state configuration context cli:

> router bgp 65001
>  address-family link-state link-state
>   neighbor 192.0.2.2 activate
>  exit-address-family

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 14:39:56 +02:00
Louis Scalbert
3cf5ff2715 yang: add bgp link-state
Add bgp link-state yang structure

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-18 14:22:51 +02:00
Louis Scalbert
1642a68d60 lib: register bgp link-state afi/safi
Register BGP Link-State AFI/SAFI values from RFC7752.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2023-09-18 14:22:51 +02:00
Francois Dumontet
d5cb2d9e41 bgpd: fix crash in *bgpv2PeerErrorsTable
following crash occurs:
    at ./nptl/pthread_kill.c:44
    at ./nptl/pthread_kill.c:78
    at ./nptl/pthread_kill.c:89
    context=0x7ffd06d3d300)
    at /build/make-pkg/output/_packages/cp-routing/src/lib/sigevent.c:246
    length=0x7ffd06d3da88, exact=1, var_len=0x7ffd06d3da90, write_method=<optimized out>)
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_snmp_bgp4v2.c:364
    vp=vp@entry=0x7f7c88b584c0 <bgpv2_variables>, vp_len=vp_len@entry=102,
    ename=ename@entry=0x7f7c88b58440 <bgpv2_trap_oid>, enamelen=enamelen@entry=8,
    name=name@entry=0x7f7c88b58480 <bgpv2_oid>, namelen=namelen@entry=7,
    iname=0x7ffd06d3e7b0, index_len=1, trapobj=0x7f7c88b53b80 <bgpv2TrapBackListv6>,
    trapobjlen=6, sptrap=2 '\002')
    at /build/make-pkg/output/_packages/cp-routing/src/lib/agentx.c:382
    vp_len=vp_len@entry=102, ename=ename@entry=0x7f7c88b58440 <bgpv2_trap_oid>,
    enamelen=enamelen@entry=8, name=name@entry=0x7f7c88b58480 <bgpv2_oid>,
    namelen=namelen@entry=7, iname=0x7ffd06d3ec30, inamelen=16,
    trapobj=0x7f7c88b53b80 <bgpv2TrapBackListv6>, trapobjlen=6, sptrap=2 '\002')
    at /build/make-pkg/output/_packages/cp-routing/src/lib/agentx.c:298
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_snmp_bgp4v2.c:1496
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_fsm.c:48
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_fsm.c:1314
    event=Receive_NOTIFICATION_message)
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_fsm.c:2665
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_packet.c:3129
    at /build/make-pkg/output/_packages/cp-routing/src/lib/event.c:1979
    at /build/make-pkg/output/_packages/cp-routing/src/lib/libfrr.c:1213
    at /build/make-pkg/output/_packages/cp-routing/src/bgpd/bgp_main.c:510

it's due to function bgpv2PeerErrorsTable returning
return SNMP_STRING(msg_str);
with msg_str NULL rather the string ""

this commit avoid the issue.

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-18 13:52:01 +02:00
Donatas Abraitis
41fa35a8f4
Merge pull request #14406 from donaldsharp/pim_debug_fun
pimd: Display oil_parent as a string name of the interface
2023-09-18 11:40:48 +03:00
Donatas Abraitis
5ca175b387
Merge pull request #14431 from idryzhov/zebra-cleanup
zebra: remove duplicated code
2023-09-18 11:06:05 +03:00
Donatas Abraitis
35d97877e1
Merge pull request #14418 from bisdn/jogo_frrcommon_fix_stop_quiet
tools: make --quiet actually suppress output
2023-09-18 11:05:33 +03:00
Donatas Abraitis
1854177392
Merge pull request #14409 from pguibert6WIND/donotuse_redistribute_table_on_non_default_bgp
bgpd: fix forbiding 'redistribute table' usage on non default instances
2023-09-18 10:09:12 +03:00
Igor Ryzhov
0f4d8c0f87 zebra: remove duplicated code
The same thing is done in zebra_if_update_link a couple of lines above.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-09-17 22:54:17 +03:00
David Lamparter
55bbef1356 ospf6d: fix uninitialized warnings
GCC 13.2.0 complains:

```
ospf6d/ospf6_intra.c:139:25: error: ‘json_arr’ may be used uninitialized [-Werror=maybe-uninitialized]
ospf6d/ospf6_intra.c:485:20: error: ‘json_arr’ may be used uninitialized [-Werror=maybe-uninitialized]
```

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-09-16 14:17:24 +02:00
Mahdi Varasteh
f5011cd5dd [ospfd]: add support for RFC 5709 HMAC-SHA Auth
This patch includes:
* Implementation of RFC 5709 support in OSPF. Using
openssl library and FRR key-chain,
one can use SHA1, SHA256, SHA384, SHA512 and
keyed-MD5( backward compatibility with RFC 2328) HMAC algs.
* Updating documentation of OSPF
* add topotests for new HMAC algorithms

Signed-off-by: Mahdi Varasteh <varasteh@amnesh.ir>
2023-09-16 07:38:23 +03:30
Igor Ryzhov
8ce68c623d
Merge pull request #14417 from Jafaral/veth
zebra: fix link update for veth interfaces
2023-09-16 01:03:21 +03:00
Carmine Scarpitta
6ae2a525cf isisd: Fix CID 1568134 (Null pointer dereference)
Null check `isis` pointer before dereferencing it.

Fixes this coverity issue:

*** CID 1568134:  Null pointer dereferences  (NULL_RETURNS)
/isisd/isis_zebra.c: 1146 in isis_zebra_process_srv6_locator_chunk()
1140                    "prefix %pFX, block_len %u, node_len %u, func_len %u, arg_len %u",
1141                    chunk->locator_name, &chunk->prefix, chunk->block_bits_length,
1142                    chunk->node_bits_length, chunk->function_bits_length,
1143                    chunk->argument_bits_length);
1144
1145            /* Walk through all areas of the ISIS instance */
>>>     CID 1568134:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing "isis", which is known to be "NULL".
1146            for (ALL_LIST_ELEMENTS_RO(isis->area_list, node, area)) {
1147                    if (strncmp(area->srv6db.config.srv6_locator_name,
1148                                chunk->locator_name,
1149                                sizeof(area->srv6db.config.srv6_locator_name)) != 0)
1150                            continue;
1151

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2023-09-15 17:42:04 +02:00