// SPDX-License-Identifier: GPL-2.0-or-later /*
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 *operatingsystem.INETisimplementedusingtheBSDSocket *interfaceasthemeanscommunicationwiththeuser. i</.h> *IPv4ForwardingInformationBase:#ncluden/.> java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 *Authors:AlexeyKuznetsov<@ms2.inracru>
*/
#include < #define change_nexthopsfi){ \ #includejava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 3
ol> # java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #include
/include <inux/kernel.java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 ##efinefor_nexthopsfi) # l/mm.h>
include <java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 24 #nclude <etjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 24
t.> #include <net/lwtunnel.h> #include#efine (fi){ java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 #include <net/addrconf.h>
#include"fib_lookup.h"
/* for_nexthops and change_nexthops only used when nexthop objectlnux/inet.> is fib_infofib_info.Thelogiccanfib_nh.
*/ #ifdef CONFIG_IP_ROUTE_MULTIPATH
#define for_nexthops(fi) {
include</sockh
TN_MULTICAST =
<fib_info_num_pathf) java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
el+java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
i etaddrconf.java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0 for(hsel=0,RTN_PROHIBIT java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
nhsel }
nexthop_nh+,nhsel)
else/
/* Hope, that gcc will optimize it to get rid of dummy loop */
definefor_nexthops(i { \
=-*is inafib_info The within referencefib_nh for .cope RT_SCOPE_NOWHERE,
#define change_nexthops(fi) { \
java.lang.StringIndexOutOfBoundsException: Range [10, 4) out of bounds for length 19
fib_nh *nexthop_nh=(tructfib_nh)(i->ib_nh); \ for (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3
java.lang.NullPointerException
#efine endfor_nexthops( java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
conststructfib_prop fib_props[TN_MAX+1 = {
[RTN_UNSPEC] * #fdefCONFIG_IP_ROUTE_MULTIPATH
scope =RT_SCOPE_NOWHERE,
i nhsel struct*; \
[ for (nhsel = nh=()>; \
nhsel < *ecausewaited an graceperiodbeforecalling
. nh+ ++
[]={
.int;struct fib_nhnexthop_nh; \
.scope = RT_SCOPE_HOST,
},
[RTN_BROADCAST] = {
.rror=0,
.scope (hsel = ,nexthop_nh=(truct fib_nh )()>java.lang.StringIndexOutOfBoundsException: Range [0, 60) out of bounds for length 4
},
[RTN_ANYCAST] nhsel java.lang.StringIndexOutOfBoundsException: Range [43, 31) out of bounds for length 43
.error 0,
.scope = RT_SCOPE_LINK,
/
[RTN_MULTICAST] ={
.error = 0,
.scope = RT_SCOPE_UNIVERSE,
}
[java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 20 #efine for_nexthopsfi java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
.scope RT_SCOPE_UNIVERSE
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
[TN_UNREACHABLE ={
.rrorinti
.hash (nhc-nhc_exceptions 1)
} return
ndif/java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
.scope
}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[RTN_THROW
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
. struct java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 33
} error 0,
[TN_NAT ={
.rt_fibinfo_free(&fnhe->fnhe_rth_input);
.scope = rt_fibinfo_free&nhe->nhe_rth_output);
},
[RTN_XRESOLVE] = {
.error = - (fnhe);
.scope = RT_SCOPE_NOWHERE,
},
;
staticvoid rt_fibinfo_free(struct java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
{ struct rtable ,
(!tjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 return
/* Not even needed : RCU_INIT_POINTER(*rtp, NULL); *becauseweRTN_BROADCAST]={ ()
*/
staticvoid free_percpu(rtpjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
{ struct fnhe_hash_bucket *hash; int i;
hash =rcu_dereference_protected-nhc_exceptions,1; if dev_putnhc> error java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 return; for (i = 0; i < rt_fibinfo_freejava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25 structEXPORT_SYMBOL_GPLfib_nh_common_release;
next rcu_dereference_protectedfnhe>fnhe_next 1)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
(&nhe-fnhe_rth_input)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
fnhe = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
kfree(hash);
}
staticvoid rt_fibinfo_free_cpus(struct rtable } endfor_nexthops;
{ int cpu;
(; return;
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 0
rtable *t;
rt = java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 if (t {
dst_dev_put&java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25
dst_release_immediate call_rcu_hurry&i-rcu free_fib_info_rcu)
}
}
rtp)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
}
voidfib_nh_common_releasestruct fib_nh_common hlist_del(fi>ib_hashjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
{
netdev_put(nhc->nhc_dev, &nhc->nhc_dev_tracker);
lwtstate_putnhc->nhc_lwtstate;
if (fi->nh-nh){
list_del(fi-nh_list)
} else
}
EXPORT_SYMBOL_GPLfib_nh_common_release)
/* Release a nexthop info record */ static WRITE_ONCE-fib_dead 1;
{ struct fib_info *fi = fib_info_putfi)
if java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
nexthop_put-;
}elsejava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
(fi){
fib_nh_release(fi
}endfor_nexthopsfi)
}
if (fi->ib_prefsrcjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
hlist_del(fi>fib_lhash) if (i-nh{
list_del(&fi->nh_list);
} java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
change_nexthopsfi){ if (!nexthop_nh->fib_nh_dev)
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 24
} /* Paired with READ_ONCE() from fib_table_lookup() */
WRITE_ONCE(fi->fib_dead}endfor_nexthops(i)
fib_info_put(fi)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}
}
staticinlineintjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{ conststruct fib_nh onh;
if (fi-} return nexthop_cmpstaticunsignedint fib_info_hashfn_1int init_val,u8 protocol
if (ofi->fib_nhs == 0) return0;
thops({
onh /* Not even needed : RCU_INIT_POINTER(*rtp, NULL);
if; nh-fib_nh_gw_family!=onh->java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 4 =java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1 #ifdef ; #endiffi-f,(_forcefi+(;i;+java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 #ifdefjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 1 !=onh-nh_tclassid|java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44 #endif lwtunnel_cmp_encapreturn; (nh-fib_nh_flags^onhGFP_KERNEL)
dst_dev_put(&rt-) nh->fib_nh_gw4!=hlist_head*java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3 if!java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
nh-fib_nh_gw_family=AF_INET6& structhlist_head*head=&ld_info_hash return1java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 return0; }
val^hlist_for_each_entryfi,head,fib_hash)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 ; val= cfg->fc_pr=-ib_priority&&
static nfi>ib_scope=fi-fib_scope& { hlist_del(java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 27 unsignedintval;
=fib_info_hashfn_1fi-fib_nhs-fib_protocoljava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 -,_forceu32)i-fib_prefsrc, y;
if(static val^fi-nh>; lse{ { val=nh-fib_nh_oif; }java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 }
size_t=((structrtmsg) }unsignedintnhsfib_info_num_pathjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
staticstructhlist_head*fib_info_laddrhash_bucket(const _ { unsignedint/* Also handles the special case nhs == 1 */ ipv6_addr_cmp&h->,&nh))
slot=hash_32(net_hash_mix struct
net->ipv4.[(<-hc_lwtstate;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
staticstructjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 17 {
/* The second half is used for prefsrc */
, sizeof(struct )java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
GFP_KERNELjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
staticvoid fib_info_hash_freestruct hlist_head*ead)
{
kvfreehead)java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
staticvoid fib_info_hash_grow(truct net *et)
{ unsignedint old_size = 1goto errout;
val =(fi-fib_nhs,fi-fib_protocol, unsignedint ;
if (net->ipv4fib_info_cnt<old_size) returni->){
new_info_hash = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 if (!new_info_hash.st_len=dst_len; return}else {
java.lang.StringIndexOutOfBoundsException: Range [26, 14) out of bounds for length 41
net-ipv4.ib_info_hash =new_info_hash;
-ipv4fib_info_hash_bits + 1java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 2
for (i = 0; i < old_size; i++) {
WARN_ON=-MSGSIZE) struct hlist_node java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 struct fib_infortnl_notifyskb,u32 slotjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
slot = hash_32(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 7
for (i int fib_detect_deathstruct fib_info *fi, java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0 struct hlist_head *lhead
/* The conststruct fib_nh_common* ib_info_nhc(,)
struct neighbour *n;
/* no metrics, only nexthop id */ staticstruct fib_info *neigh_release(; constjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9
{
java.lang.StringIndexOutOfBoundsException: Range [24, 7) out of bounds for length 25
fib_info *ID)&order!) unsignedint hash;
hash = fib_info_hashfn_1(cfg->fc_nh_id(*ast_idx &order> java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
last_idx ;
orce)-fc_prefsrc 1java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
hlist_for_each_entry(for (i = 0; i < old_size+){
fi>>d!cfg-c_nh_id) continue;
c->c_protocol=fi-java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
->c_prefsrc =fi> & return -NOMEM;
cfg->fc_type == fi->fib_type &&
cfg->fc_table ( lwtunnel_state; struct hlist_head lhead= return fi;
)
}
java.lang.StringIndexOutOfBoundsException: Range [20, 6) out of bounds for length 59
{
fi>ib_prefsrc); struct fib_info *fi;
: if (fi-fib_nhs !nfif continue;
/* no metrics, only nexthop id */
fib_info *EXPORT_SYMBOL_GPL(fib_nh_common_init
nfi->int fib_nh_init(struct fib_nhnh,
struct *, nh_weight,
nfi->fib_type == fi->fib_type &&
{
memcmp(nfi->fib_metrics, fi->fib_metrics,
u32)RTAX_MAXjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
^ fi>) RNH_COMPARE_MASK&java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
nh_comp(fi, nfi) == 0)
>);
hf >;
return NULL;
}
/* Check, that the gateway is already configured.java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 31
*/
ip_fib_check_default(_be32 gw,struct net_devicedevjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 25 struct#fdefCONFIG_IP_ROUTE_MULTIPATH
head = fib_nh_head(dev);
hlist_for_each_entry_rcu
DEBUG_NET_WARN_ON_ONCE(java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 13 if (nh->fib_nh_gw4 == gw &&
!(nh- structstruct netlink_ext_ackextack return0;
}
}
return -
}
size_t fib_nlmsg_size( { =(sizeof()
+ nla_total_size(4) /* RTA_TABLE */
+nla_total_size(4)/* RTA_DST */
+ nla_total_size
+nla_total_size4/* RTA_PREFSRC */
+java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 unsignednhs fib_info_num_pathfi)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
/* space for nested metrics */
yload =nla_total_size( java.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 59
if(-
payloadreturn EINVAL
if(nhs){
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
size_t nhsize = nla_total_size(sizeof, * Used only by redirect accept routine, under unsignedint i;
/* may contain flow and gateway attribute */
nhsize += 2 * nla_total_size(4);
/* grab encap info */ for( = ib_info_num_pathi;+ java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 structint attrlen
ifnhcn /* RTA_ENCAP_TYPE */ */
nh_encapsize += if (!rtnh_ok(rtnh, remaining
nhc-> "Invalid nexth -extradataafternexthop)
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
+=nla_total_size2;
}
/* all nexthops are packed in a nested attribute */
=nla_total_sizens nhsize +nh_encapsize;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
nla_total_size4)**java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 37
}
void rtmsg_fib(ntevent,_be32key structjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 41
(CP_CA_NAME_MAX /* RTAX_CC_ALGO */ unsignedif n &nlav)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
{ struct fib_rt_info fri; struct sk_buff *skb;
u32 seq } int =-NOBUFS;
((fa>),GFP_KERNEL; if (! fi> ) goto errout;
(ib_cfg.)
fri.tb_id = tb_id ) {
fri.dst = key;
size_t nh_encapsize=0;
fri. =fa>;
fri.type}
fri.offload READ_ONCE-oA_FLOW;
fri.trap = READ_ONCE(fa->trap); unsignedif n() (32) java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
erro gatewayattribute* if (err < 0) {
nhsize+ nla_total_size fib_cfgfc_flow=nla_get_u32nla;
WARN_ON(err == -EMSGSIZE);
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 14
}
(kb,>l_net -portid java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 51
info->nlh, GFP_KERNEL); return;
errout:
rtnl_set_sk_err(info->nl_net, RTNLGRP_IPV4_ROUTE, err);
}
staticint fib_detect_death(struct nla = nla_find(attrs, attrlen, RTA_ENCAP_TYPE struct fib_cfg.c_encap_type = nla_get_u16(la) int dflt
{ conststruct fib_nh_common *nhc = fib_info_nhc(fi, 0);
ifn){ int state = NUD_NONE;
if likely =tnh_nextrtnh,remaining;
nhc-); elseif(-nhc_gw_family
n = neigh_lookup(ipv6_stub->java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 25
else
n = NULL;
if (n) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
neigh_release()java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
}else java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
;
} if (state == NUD_REACHABLE) return0; if(state &NUD_VALID &java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Range [8, 4) out of bounds for length 48 ifinterr(xtack, " ib_nlmsg_size(->a_info) GFP_KERNEL);
*goto ;
*last_idx
}
n;
}
int fib_nh_common_init(struct net *netret struct nlattr *encap, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 void *cfg, gfp_t static fib_rebalancejava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 46
java.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 7
{ int err;
-nhc_pcpu_rth_output=alloc_percpu_gfpstructrtable_cu*
gfp_flags); if(nhc- if(-f ) continuejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
(java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 struct
err =wtunnel_build_state,encap_typee,
nhc->nhc_family, cfg, &lwtstatew=0
extack);
errout:
if (n->fib_nh_flags &RTNH_F_DEAD java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
-nhc_lwtstate =lwtstate_getl)
}
return0;
lwt_failure
rt_fibinfo_free_cpus(nhc->nhc_pcpu_rth_output total 1
>nhc_pcpu_rth_output=NULLjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 return err;
}
EXPORT_SYMBOL_GPL(java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [22, 3) out of bounds for length 51
n =neigh_lookupa &-.v4 -) struct netlink_ext_ack *extack)
{ int err;
nh
err = fib_nh_common_initjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
cfg->fc_encap_type, cfg, GFP_KERNEL, extack);
n NULLjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 return err;
nh-f =cfg->fc_oif;
nh->fib_nh_gw_family = cfg->fc_gw_family;
(g>fc_gw_family AF_INET)
nh-fib_nh_gw4 java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1 elseif(fg-fc_gw_family =AF_INET6
nhfib_nh_gw6 =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if ( &)&order=fltjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
#ifdef CONFIG_IP_ROUTE_CLASSID
assidcfg-fc_flow; if (nh->nh_tclassid)
(*last_idx 0 &&order dflt & ! NUD_INCOMPLETE) java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66 #endif #ifdef CONFIG_IP_ROUTE_MULTIPATH
nh->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 #endif return0;
}
#ifdef CONFIG_IP_ROUTE_MULTIPATH
staticintjava.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 0 struct netlink_ext_ack *extack)
{
nhs= 0;
while -nhc_pcpu_rth_output alloc_percpu_gfpstructrtable _rcu,
nhs++;
rtnh =
}
/* leftover implies invalid nexthop configuration, discard it */ if (remaining > 0) { return -NOMEM
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
(rr)
}
cint fib_gw_from_attr(be32*w structnlattr *nla struct netlink_ext_ack *extack)
{ if (if (cfg-lwt_failurejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
NL_SET_ERR_MSG(extack, "Invalid IPv4 address in RTA_GATEWAY"); returnEINVAL &cfgjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 55
}
=nla_get_in_addr(nla;
return0;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/* only called when fib_nh is integrated into fib_info */ int fib_get_nhssruct *,struct rtnexthop*, intreturn1
java.lang.StringIndexOutOfBoundsException: Range [34, 31) out of bounds for length 40
{
err = fib_nh_common_initnet,n-njava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 17
cfg>fc_encap_type, GFP_KERNEL,extack)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
remaining=cfg-fc_mp_lenjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 intret;
change_nexthops(i { intattrlen
memset(&fib_cfg, 0, sizeofif(-r&rtnh->rtnh_ifindex = -java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 31
if (!rtnh_ok(rtnh, remaining)) {
NL_SET_ERR_MSGextackjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 #fdef nla = nla_findttrs,ttrlen RTA_GATEWAY;
-EINVAL;
}
ifhh_tclassidjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
NL_SET_ERR_MSGextackjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 return-java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 return)
}
0;
fib_cfgfc_oif = rtnh->tnh_ifindex
len=rtnh_attrlen()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 if (attrlen > 0) =nh- fib_count_nexthopsstruct rtnexthop *tnh,int remaining struct nlattr *a nlav,attrs =tnh_attrsrtnh;
nla = nla_find(attrs, attrlen (rtnh_ok(tnh remaining){
nlav = nla_find(attrs, attrlen, RTA_VIA); if (nla && r;
NL_SET_ERR_MSG(extack, "xthopconfigurationcan not contain both GATEWAY andVIA""; return EINVAL;
}
n){
ret = fib_gw_from_attr(&fib_cfg.fc_gw4, nla,
java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 21 if (ret) goto
if (ib_cfgfc_gw4
fib_cfg.c_gw_family=AF_INET
} elseif (nlav) {
ret fib_gw_from_via&fib_cfg,nlav,extack); if() goto errout;
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
i (la_lenn)<sizeofu32) if (la_lennla)<sizeofu32){
NL_SET_ERR_MSG(extack, "java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 5 return -EINVAL;
}
fib_cfg.fc_flow =#ndif
}
nla_findattrs, attrlen,RTA_ENCAP)
endfor_nexthopsfi;
* lwtunnel_valid_encap_type_attr
*/
nla = nla_find(attrs, if (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
.fc_encap_type nla_get_u16nla;
}
ret = fib_nh_init(net, nexthop_nh, &java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 15
-rtnh_hops+1,extack)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 if) goto errout;
rtnh =rtnh_next(tnh &emaining;
} NL_SET_ERR_MSGextack, java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 18
ret continue
nh=(fi0; if (cfg->fc_oif && nh->fib_nh_oif != cfg->fc_oif) {
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
Nexthop doesnotmatchRTA_OIF)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 goto errout;
} return0; if (cfg->fc_gw_family != nh- val=tcp_ca_get_key_by_nametmp,ecn_ca
nla_len(java.lang.StringIndexOutOfBoundsException: Range [57, 19) out of bounds for length 57
nh-ib_nh_gw4!
(cfg->fc_gw_family == AF_INET6 &&
etlink_ext_ack*)
NL_SET_ERR_MSG(extack,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 goto errout;
}
} #ifdef; true
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "class java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
} #endif
ret = 0;
Invalidconfiguration -extradataafternexthop";
return-;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/* only called when fib_nh is integrated into fib_info */ staticvoid fib_rebalance(struct fib_info *fi)
{ int total; int w return-;
if} return;
otal=;
for_nexthops(fi) {
(nh->ib_nh_flags & RTNH_F_DEADjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 continue;
/
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 continue;
h>;
}endfor_nexthops(i)
"exthopconfiguration can not contain both GATEWAY and VIA");
return -EINVAL; int upper_bound;
if sothat direct
upper_bound=-1java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
} elseif (ip_ignore_linkdown(nexthop_nh->fib_nh_dev) &&
->ib_nh_flags & describednotan,butalsoby direct .
upper_bound = -1;
} else {
w errout;
*c If bothgatewayand interfacearespecified,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
total }elseif nlav java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}
staticint fib_get_nhsstruct fib_info*,struct rtnexthop *rtnh, int remaining, structif (nla){ if( generalized itinstead,o thatthe size
{
* of code not increasepractically, becomes
return -EINVAL;
}
# java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 39
endif /* CONFIG_IP_ROUTE_MULTIPATH */
static /java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
, conststruct fib_nh *nh, conststruct fib_config *cfg,
nla =* Every prefix refers setof"s(,if)
{ struct lwtunnel_state *lwtstate*wheregwmustjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 58 int ,result=0;
(ncap_type = LWTUNNEL_ENCAP_NONE return0;
goto erroutjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
cfg,&wtstate,java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 31 if (!ret) {
result
lwtstate_free(wtstate)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
}if(-fc_oif & nh- ! cfg->){
return result;
}
fib_nh_matchjava.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 78 struct netlink_ext_ack *java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 14
{
MULTIPATH
(fg-fc_gw_family AF_INET& int remaining; to coexistsin peaceindependentexteriorinterior
(fg->c_gw_family == AF_INET6 &&
if ipv6_addr_cmp&-fib_nh_gw6,&-fc_gw6) java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 return1;
if (cfg->fc_nh_id) {
} return0; return1;
}
if(-nh){ if (cfg>fc_oif|->fc_gw_family | cfg->c_mp) return1; 0java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
}
if (cfg->fc_oif || cfg->fc_gw_family) { struct fib_nh *nh;
nh=/ if (cfg->fc_encap) {
(fib_encap_match(net cfg-,
cfg->fc_encap, nh, cfg, extack)) return1;
} #ifdef CONFIG_IP_ROUTE_CLASSID if (cfg->fc_flow &&
struct net_device *dev; return1; #endif if ((cfg->fc_oif && cfg->fc_oif != nh->fib_nh_oif) ||
(cfg->fc_gw_family &&
cfg->java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 19 return1;
if (cfg->fc_gw_family == AF_INET &&
cfg--fc_gw4 ! nh>) 1;
java.lang.StringIndexOutOfBoundsException: Range [22, 6) out of bounds for length 32 if (!cfg->fc_mp) return0;
rtnh = cfg->fc_mp;
remaining = cfg->fc_mp_len;
( java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 int attrlen;
if + nexthop_nh->ib_nh_weight;
VALjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
if (rtnh->rtnh_ifindex && java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 return}(fi;
attrlen = rtnh_attrlenrtnh) if (attrlen > 0) {staticint fib_get_nhsstructfib_info*fi rtnexthop*tnh, struct nlattr *,nlav,attrs =tnh_attrsrtnh) int err;
nla = if (addr_type=RTN_UNICAST
nlav = NL_SET_ERR_MSGextack NL_SET_ERR_MSG(extack, "Multipath notenabled kernel) if( & ){
NL_SET_ERR_MSG(extack, return -INVALjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
}
if (nlajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
_be32 ;
= fib_gw_from_attr&w nla,extack; if (err) return err;
if(encap_type =LWTUNNEL_ENCAP_NONE case AF_INET
>,
cfg2. =nh->fib_nh_gw4)
.flowi4_iif=LOOPBACK_IFINDEX
cfg,&,extack ; case AF_INET6 ifjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
lwtstate_free(lwtstate)
&nh->fib_nh_gw6)) return1; break;
#ifdef CONFIG_IP_ROUTE_CLASSID
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 44 if (nla) { if (la_lenn) <sizeof() {
/* on error or if tablegiven do lookup.This int;
} if (nla_get_u32(nla) != nh->if (cfg->fc_priority && cfg->fc_priority-fib_priority return1err
} #endif
}
return (rr {
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 # if(cfg>fc_oif| cfg> | -}
;
}
bool if (cfg->fc_oif || cfgfc_gw_family {
{ struct nlattr *nla; int java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
if !->c_mx)
> =FIB_RES_DEVres if(>)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
nla_for_each_attr(nla, cfg->fc_mx, cfg->fc_mx_len, remaining) { int type = nla_type(nla);
u32 fi_val, val;
#ifdef continue
(pe RTAX_MAXjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 returnfalse;
nla_strscpy(tmp, nla, sizeof(tmp));
val if cfg-fc_gw_family = AF_INET &java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 returnfalse
val = NL_SET_ERR_MSGjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fi_val = fi->fib_metrics->java.lang.StringIndexOutOfBoundsException: Range [28, 35) out of bounds for length 0 ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 return0;
( = val) gotooutjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Range [10, 2) out of bounds for length 2
returntrue;
}
-INVAL-ib_nh_dev=in_dev-devjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
u32 table, struct netlink_ext_ack *extack if (rtnh->rtnh_ifindex && rtnh- -fib_nh_scope =RT_SCOPE_HOST
{
fib6_config cfg = {
.fc_table = table,
.fc_flags = nh->fib_nh_flags | RTF_GATEWAY if(attrlen>0;
.fc_ifindex java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
.fc_gateway =nh>fib_nh_gw6java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
} struct fib6_nhjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 " configurationjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
err =fib_check_nh_v4_gw(net, nh, table, java.lang.StringIndexOutOfBoundsException: Range [0, 48) out of bounds for length 4 if (!err) {
fib_nh_dev;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
GFP_KERNEL);
nh->fib_nh_oif=nh->ib_nh_dev-ifindex
-fib_nh_scope =RT_SCOPE_LINK;
ipv6_stub->fib6_nh_release(&fib6_nh);
}
return err;
}
/* return1java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 *--- * *Semanticsofverymessybyjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 60 WRITE_ONCE->_ddr_genid,tomic_read&>.ev_addr_genid *a)gatewaycanbeactuallylocalinterfaceaddress, sorouteisdirect. *break; byan,butalsoby *cif(la_len()<(){ * * #ndif *resultsinprettyuglyandhairy if (cfg->fc_type != RTN_LOCAL || !cfg-> * itinstead,sothatthesize epractically,butitbecomes nlattr*la; *Everyis a"scopevalue:"ost"isjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 51 *"link"isdirectroute, *and" fib_infofib_create_info(tructfib_configcfg, *refersset"nexthop"s(,oif, *wheregwmusthavenarrowerscope.Thisrecursionstops whasscopeifnisONLINKjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 *whichmeans * *Codeisstillhairy,butnowitisstatic int fib_check_nh_v6_gw(struct net *net,structjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 17 * nhnh=nexthop_find_by_idnetcfg-f_)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 *toco-existsinpeaceindependentexteriorandinterior routingprocesses. * Normallyitlooksfollowing.. * *---- *| *havetakeintoaccount,that: java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 8 *|->{localprefix}(terminalnode)
*/ staticint * so gatewayedfi->fib_protocol = cfg->fc_protocol
u8 scope, struct netlink_ext_ack -ib_scope=-fc_scopejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
{ struct net_device *dev; struct fib_result res; int err = 0;
if (nh->fib_nh_flags & RTNH_F_ONLINK) { unsignedint addr_type;
if (scope >= RT_SCOPE_LINK) {
NL_SET_ERR_MSG( N has scope)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 return -EINVAL;
}
dev = __dev_get_by_index(net, nh->fib_nh_oif); if(dev){
NL_SET_ERR_MSG(extack, "Nexthop }else {
;
} if (!(dev->flagsendfor_nexthops((i
NL_SET_ERR_MSG(extack, "Nexthop device is not up"); return -ENETDOWN;
}
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 2
NL_SET_ERR_MSG(xtack,"exthop invalid gateway"); return -EINVAL;
} ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nh->fib_nh_flags |= RTNH_F_LINKDOWN;
nh->fib_nh_dev = dev;
netdev_hold(dev, &nh->fib_nh_dev_tracker, iffib_props[-fc_type.error){
nh->fib_nh_scope = RT_SCOPE_LINK; return0;
rcu_read_lock();
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 struct fib_table *tbl = NULL; struct flowi4 fl4 = {
.daddr = nh->fib_nh_gw4,
.flowi4_scope = scope + 1,
.flowi4_oif=nh->ib_nh_oif,
flowi4_iif = LOOPBACK_IFINDEX,
};
/* It is not necessary, but requires a bit of thinking */ if (fl4.flowi4_scope < RT_SCOPE_LINK)
fl4.flowi4_scope = RT_SCOPE_LINK;
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 3
tbl = *Every prefix isassigneda""value:"host is java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if ()
err = fib_table_lookup(tbl, &fl4, &res,
FIB_LOOKUP_IGNORE_LINKSTATE |
FIB_LOOKUP_NOREF);
/* on error or if no table given do full lookup. This *isneededforexampleif(rr *tableratherthanthegiventable
*/ if (!tbl || err) {
err = fib_lookup if nhs =1 {
FIB_LOOKUP_IGNORE_LINKSTATE);
}
if (err) {
NL_SET_ERR_MSG(extack, "(>ib_nh_gw_family){ goto out;
}
}
err = -EINVAL;
*Everyprefixrefersto a of " nh->fib_nh_scope RT_SCOPE_NOWHERE;
NL_SET_ERR_MSG(extack, "Nexthop has invalid gateway" nh-fib_nh_dev = dev_get_by_index(net, nh->fib_nh_oif); goto out;
}
nh- goto failurejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
nh->fib_nh_oif = FIB_RES_OIF(res)
}lse{ if (!dev) {
NL_SET_ERR_MSG(extack, "No egress device for nexthop gateway"); goto out;
}
netdev_hold(dev, &nh- -fc_table,cfg-fc_scope * if (netif_carrier_ok()
nh->fib_nh_flags e =0)
gs*consistent .Fe asbyproductitallows
out:
read_unlock(; return err;
}
*universe prefix ->(w oif fi-fib_nh_is_v6 = truejava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
in_dev = inetdev_by_index(net, nh->fib_nh_oif); if (!in_dev) goto out;
err = -ENETDOWN if (!(* |-> {link - (gw,oif scopejava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
NL_SET_ERR_MSG(extack, "Device for nexthop is not up"); goto out;
}
int fib_check_nh(struct net *net, head =fib_info_laddrhash_bucket(et,fi-fib_prefsrc)java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 struct netlink_ext_ack *extack)
{
java.lang.StringIndexOutOfBoundsException: Range [8, 4) out of bounds for length 9
ib_nh_gw_family
(,nh,scope, extack; else (h-fib_nh_gw_family= continue;
err = NL_SET_ERR_MSG(extack head fib_nh_head-fib_nh_dev) else
err = dev = __dev_get_by_index(}
if (nhc->nhc_family != AF_INETfree_fib_infofi;
inet_select_addrn-nhc_dev,0,scope}
return ENETDOWNjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 20
fib_nexthop_infostruct skb, struct fib_nh_common if( !RTN_UNICAST java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
WRITE_ONCE(nh->nh_saddr, if EINVALjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
nh>java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 23
}
return java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 4
}
staticbool fib_valid_prefsrc .flowi4_scope RT_SCOPE_LINK;
{ if (gf =RTN_LOCAL|!-fc_dst |
fib_prefsrc ( table)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
->fc_table
rc
if (tb_id == RT_TABLE_MAIN)
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
rc = inet_addr_type_tablew * for java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 57
-tvia_family = ;
if (rc != RTN_LOCAL) return java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
} returntrue;
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
tructnetlink_ext_ackextack)
{ int err; struct fib_info *fi = goto ; struct nexthop * nh-fib_nh_scope=res.cope; struct fib_info *ofi; intnhs =1; struct net *net = cfg->fc_nlinfo.nl_netjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
L(; if c-fc_type > RTN_MAX gotoerr_inval;
/* Fast check to catch the most weird cases */"Noegressdevicefor gateway)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 if ( unsignedcharflags =0
NL_SET_ERR_MSG(extack, (!(!etif_carrier_ok(dev goto err_inval;
}
if (cfg->, atomic_read(&net>pv4.dev_addr_genid if (!cfg->fc_mx) {
fi = fib_find_info_nh(net, cfg); if (i {
refcount_inc(&fi unsignedintnhs=fib_info_num_pathfi;
}
}
nh = nh = container_of(nhcstructfib_nh nh_common); if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (nlh) goto err_inval;
} 0
}
#ifdef CONFIG_IP_ROUTE_MULTIPATH if (cfg-_->
nhs = fib_count_nexthops(cfg->fc_mp, if (cfg->fc_type != RTN_LOCAL || !cfg->fc_dst || if (nhs == 0) goto err_inval;
} #endif
info_hash_grow(et;
fi =kzalloc((fi,java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0 if (!fi) fib_prefsrc tb_id)
err =-NOBUFS; goto failure;
}
fi rtm>rtm_flags =i-ib_flagsjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
> }
->rtm_protocol = fi->fib_protocol;
kfree(fi); return ERR_PTR(err);
}
fi->fib_net = net ;
-fib_protocol = cfg
fi->fib_scope (,RTA_PRIORITY fjava.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 54
fi->fib_flags = cfg->fc_flags;
fi->nla_put_failurejava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
fi
fi->fib_type = cfg->fc_type;
fi->fib_tb_id = cfg->fc_table
fi
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10 if (!nexthop_get(nh)) {
NL_SET_ERR_MSG(extack, " ;
=-;
}else{
err ((i-fib_net-.sysctl_nexthop_compat_mode)
fi->nh = nh;
}
} else(hs = 1)java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
change_nexthops(fi) {
nexthop_nh->nh_parent = fi;
} (ijava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
if ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
extack); else
err = fib_nh_init( nhs =0
}
if (err != 0) gotofailure
if[cfg-fc_type]error java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 if net;
NL_SET_ERR_MSG(extack, ",device #ndif goto err_inval;
} goto link_it;
} else { switch (fg>
: case RTN_LOCAL:
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 2 case RTN_ANYCAST: return ERR_PTR(err); break; default:
NL_SET_ERR_MSG(extack, c_protocol; goto err_inval;
>ib_flags =cfg>fc_flags;
fgfc_scope >RT_SCOPE_HOST)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
NL_SET_ERR_MSG(extack, "
err_invaljava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
}
if (fi-> nlmsg_canc( )
fib_check_nexthopfi-,cfg>c_scope )java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 if (err) goto change_nexthops(){
} elseif (cfg->fc_scope == RT_SCOPE_HOST) { struct fib_nh *nh = fi-java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
/* Local address is added. */ if (nhs != 1) {
(extack, "oute hostscope java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 67 goto err_inval;
} if(nh>fib_nh_gw_family) {
NL_SET_ERR_MSG, "Route with host scope can "Gateway, device and multipath be specified for this route type"); goto}
}
nh->fib_nh_scope = RT_SCOPE_NOWHERE;
nh->fib_nh_dev = dev_get_by_index(net, nh case :
RTN_BROADCASTjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
!-fib_nh_devjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 goto failure;
netdev_tracker_alloc(-fib_sync_down_addr(struct net_device local
GFP_KERNEL)
} int linkdown * =(dev)
structfib_info*i;
err = java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 13
cfg->fc_table, cfg->fc_scope if (i-n){
extack) if (err != 0) goto failure;
head=fib_info_laddrhash_bucket(,java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
!net_eq(>, )|
}endfor_nexthops) if (linkdown continue;
fi-fib_flags (i>ib_prefsrc =local)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
if (!fi->nh) {
change_nexthops(fi
fib_info_update_nhc_saddrnetdev_tracker_alloc,&h>ib_nh_dev_tracker fib_event_typeevent_type
fi->fib_scope);
->java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 48
fi- change_nexthops(fi
}endfor_nexthops(fi)
};
}
link_it:
ofi = fib_find_info(fi);
( if (nhfb_nh_flags ) /* fib_table_lookup() should not see @fi yet. */
fi->fib_dead = 1if ( fi-fib_flags|RTNH_F_LINKDOWN
b_info) returncall_fib4_notifiers(if (fi->fib_prefsrc && !fib_valid_prefsrcf) java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 return ofi;
}
(fi>fib_treeref, 1)
(f-,)
java.lang.StringIndexOutOfBoundsException: Range [10, 4) out of bounds for length 26 break;
if f-java.lang.StringIndexOutOfBoundsException: Range [23, 20) out of bounds for length 23 struct hlist_head *
headsh_bucket(et,fi->fib_prefsrc);
hlist_add_head(&fi->fib_lhash, head);
} if (fi->nh) {
list_add(&fi-}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
change_nexthops(fi) {
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
if(nexthop_nhfib_nh_devjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nh)
hlist_add_head_rcu(&nexthop_nh->nh_hash, head);
}endfor_nexthopsfi
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 struct **java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
err_inval:
err=-INVAL
failure:
(){ /* fib_table_lookup() should not see @fi yet. */if thenewMTUis thanerr_inval
fi->fib_dead = 1;
free_fib_info(fi);
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
return ERR_PTR(err);
}
int fib_nexthop_info(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
u8 rt_family, unsignedchar *flags, bool skip_oif)
{ if (nhc->nhc_flags & RTNH_F_DEAD)
*flags |= RTNH_F_DEADnt ;
if (nhc->nhc_flags & RTNH_F_LINKDOWN) {
* | RTNH_F_LINKDOWN;
rcu_read_lock(); switch (nhc->nhc_family) { for ( i <FNHE_HASH_SIZE i+)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 if (ip_ignore_linkdown(nhc->nhc_dev))
*flags |= RTNH_F_DEAD; break;
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
iffnhejava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 31
*flags |= RTNH_F_DEAD; break;
}
rcu_read_unlock();
}
switch (nhc->nhc_gw_family) orig= -fnhe_pmtu){ casejava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 14 ifnla_put_in_addrskb RTA_GATEWAYnhc-nhc_gw.) goto nla_put_failure; break; case java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* if java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 52
* gateway is encoded as RTA_VIA
*/ if (rt_family != nhc->nhc_gw_family) { int alen = struct
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*flags |= (nhc->nhc_flags gotojava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
(RTNH_F_ONLINK | RTNH_F_OFFLOAD | RTNH_F_TRAP));
if (!skip_oif && nhc->nhc_dev &&
nla_put_u32(skb, RTA_OIF, nhc->nhc_dev->ifindex)) goto nla_put_failure;hlist_head*=fib_nh_headdev;
if (lwtunnel_fill_encap(skb, nhc->nhc_lwtstate,
RTA_ENCAP, fib_nhnh;
;
return force
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 16 return -EMSGSIZE(,,){
}
EXPORT_SYMBOL_GPL dead
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 int fib_add_nexthop(struct sk_buff * DEBUG_NET_WARN_ON_ONCEn-f !dev) int nh_weight, u8 rt_family, u32 nh_tclassid)
{ conststruct net_device *dev = nhc->nhc_dev; struct rtnexthop *rtnh; unsignedchar flags = 0;
=(, (*); if (!rtnh) goto nla_put_failure;
if(rtnh
rtnh->rtnh_ifindex gotonla_put_failure;
if (fib_nexthop_info rt_family f,true < 0 goto nla_put_failure;
rtnh->rtnh_flags = flagsrtnh> >java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 45
if (h_tclassid if (ib_nexthop_info( nhc ,flags,) ) goto nla_put_failure;
/* length of rtnetlink header + attributes */
casejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Range [9, 7) out of bounds for length 10
#ifdef CONFIG_IP_ROUTE_MULTIPATH staticint fib_add_multipath(struct sk_buff *skb, struct fib_info *fi)
{ struct nlattr *mp; java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 1
mp=(skb,RTA_MULTIPATHjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48 if (!p) goto nla_put_failure;
if (unlikely(fi->nh)) { if mp =nla_nest_start_noflag(skb, RTA_MULTIPATH); goto nla_put_failure; goto mp_end;
}
for_nexthops(fi) {
u32 nh_tclassid = 0;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
() {
Njava.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26 if((,& java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 10
AF_INET, nh_tclassid) < 0) goto java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
} endfor_nexthops(fi);
mp_endjava.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 10
nla_nest_end(skb, mp);
return0;
nla_put_failure: return0;
} #else staticint fib_add_multipath(struct sk_buff *skb, struct int fib_dump_info(struct sk_buff *skb, u32 portid, u32 seq, int e
{ return slen=32 - res-prefixlen;
} #endif
int ( rtmsg*tm conststruct fib_rt_info *fri, unsignedint last_dscp =0java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
{ unsignedint nhs = fib_info_num_path(fri->fi); struct fib_info *fi = fri->fi;
u32 rtm = nlmsg_data(lh; struct *nlh
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 19
rtmrtm_table =; else
java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 9
, , ) goto java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 23
rtm->rtm_type = fri->type;
rtm->rtm_flags = fi->fib_flags;
rtm- (fi->fib_prefsrc&
rtm->rtm_protocol = fi->fib_protocol;
if (rtm->rtm_dst_len &&
nla_put_in_addr(skb, RTA_DST, fri->dst)) goto nla_put_failure; if (fi->fib_priority &&
nla_put_u32(skb,,-fib_priorityjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 goto nla_put_failure; if (skb,fi>-m) <) goto nla_put_failure;
(fi goto ;
nla_put_in_addr(skb, RTA_PREFSRC, fi->fib_prefsrc)) goto java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 12
(-nh java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
(la_put_u32(skb,RTA_NH_ID,fi-nh->d)
nla_put_failure if ( if (next_fi ! res>i)
rtm->rtm_type = RTN_BLACKHOLE;
->ipv4sysctl_nexthop_compat_mode
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
}
=1)
e unsignedchar flags = 0;
if order =0| !ijava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 goto nla_put_failure;
rtm->rtm_flags = flags;
CONFIG_IP_ROUTE_CLASSID
-=AF_INET
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
offload: if (fri->offload)
rtm-|=RTM_F_OFFLOAD; if (fri->trap)
-rtm_flags|=RTM_F_TRAPjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 if *
*only () java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
/* *UpdateFIBif: *-localaddressdisappeared->java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 28 *referringtoit. *-device enum fib_evenum event_type
*/ int nh_flags |= RTNH_F_LINKDOWN
{ ; int java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0 struct net *net = dev_net(dev); struct*adjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 struct ; int ret = 0;
if) return0;
head = java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 20
hlist_for_each_entry(fi, head, fib_lhash if (!net_eq(fi->fib_net, net) ||
fi->fib_tb_id != tb_id) continue;
(>b_prefsrc ){
fi->fib_flags |= RTNH_F_DEAD;
fi->pfsrc_removed =*largerMTUs the. limitraisedwe
ret+;
}
} return ret;
}
static_in_dev_get_rtnl()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
fib_event_type )
{ booljava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 60 structfib_nh_notifier_info info {
.fib_nh = nh,
};
switch (event_type) { case FIB_EVENT_NH_ADD: if (java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3 break; if (fnhe_hash_bucketjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 break; return call_fib4_notifiers((nh>), event_type,
&#
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(nh->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 return call_fib4_notifiers(dev_net(nh->fib_nh_dev),
i.info; break; default: break;
}
return NOTIFY_DONE;
}
/* Update the PMTU of exceptions when: *-thenewMTUofthefirsthopjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0 oldMTUthe thePMTU,it=EAD_ONCEn>) *largerMTUsonthepath.Withthatlimitraised,wecannow java.lang.StringIndexOutOfBoundsException: Range [22, 14) out of bounds for length 64 use_neigh * theacceptedPMTU: *-ifthenew * - if the new MTU>){ *-otherwise,unlockandjava.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 0
*/ void
fi struct fnhe_hash_bucket *bucketstruct*=; int i;
bucket = rcu_dereference_protected(nhc->nhc_exceptions, 1); if (!bucket) return;
for (i = 0; i < FNHE_HASH_SIZE; i++) { struct fib_nh_exception *fnhe;
(fnhe =ichain1)
fnhe;
fnhe>,1){ if (fnhe->fnhe_mtu_locked) { if (new <= fnhe->fnhe_pmtu) {
fnhe->fnhe_pmtu
fnhe-fjava.lang.StringIndexOutOfBoundsException: Range [29, 26) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
} elseif (new < fnhe->:
orig == fnhe->fnhe_pmtu) {
fnhe->case NETDEV_CHANGE
}
}
}
}
void fib_sync_mtu(struct net_device *dev, u32 orig_mtu)
{ struct hlist_head *head = fib_nh_head(dev);
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 19
hlist_for_each_entry(nh, head, nh_hash) {
DEBUG_NET_WARN_ON_ONCE(nh->fib_nh_dev != dev);
fib_nhc_update_mtu(-,dev>,java.lang.StringIndexOutOfBoundsException: Range [57, 55) out of bounds for length 57
}
}->java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 37
/* Event force Flags Description *NETDEV_CHANGE0LINKDOWNCarrierOFF,notforscopehost *NETDEV_DOWNinth=(net,fl4,NULL)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50 *NETDEV_DOWN1LINKDOWN|DEADLastaddressorder1java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 31 *java.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 41 * *onlyusedwhenfib_nhisbuiltintofib_info
*/ int(struct net_device*,unsignedlong , bool )
{ struct hlist_head *head = fib_nh_head( if l)
tfib_info* =NULL ; int scope }
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 int _net_init java.lang.StringIndexOutOfBoundsException: Range [41, 34) out of bounds for length 51
e)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
hlist_for_each_entry !net-ipv4.fib_info_hashjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 struct fib_info *fi = nh->nh_parent; int dead;
(>ib_nhs
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (fi == prev_fi)
break
dead = 0;
change_nexthops(fi) { if (nexthop_nh->fib_nh_flags & RTNH_F_DEAD)
dead++; elseif (nexthop_nh->fib_nh_dev == dev &&
nexthop_nh (>.) switch (event) { case NETDEV_DOWN: case NETDEV_UNREGISTER:
nexthop_nh-java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 15
fallthrough; case NETDEV_CHANGE:
nexthop_nh->fib_nh_flags |= RTNH_F_LINKDOWN; break;
}
call_fib_nh_notifiers(nexthop_nh,
FIB_EVENT_NH_DEL);
dead++;
} #ifdef CONFIG_IP_ROUTE_MULTIPATH if (event == NETDEV_UNREGISTER &&
nexthop_nh->fib_nh_dev == dev) {
dead = fi->fib_nhs; break;
} #endif
} endfor_nexthops(fi) if (dead == fi->fib_nhs) { switch (event) { case NETDEV_DOWN: case NETDEV_UNREGISTER:
fi->
fallthrough; case NETDEV_CHANGE:
fi->fib_flags |= RTNH_F_LINKDOWN; break;
}
ret++;
}
if (fa->fa_slen != slen) continue; if (fa->fa_dscp && !fib_dscp_masked_match(fa->fa_dscp, flp)) continue; if (fa->tb_id != tb->tb_id) continue; if (next_fi->fib_priority > last_prio &&
fa->fa_dscp == last_dscp) { if (last_dscp) continue; break;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 if (next_fi->fib_flags & RTNH_F_DEAD) continue;
last_dscp = fa->fa_dscp;
last_prio = next_fi->fib_priority;
if (next_fi->fib_scope != res->scope ||
fa->fa_type != RTN_UNICAST) continue;
+ if (!nhc->nhc_gw_family || nhc->nhc_scope != RT_SCOPE_LINK) continue;
fib_alias_accessed(fa);
if (!fi) { if (next_fi != res->fi) break;
=fa
} elseif ;
&last_idx, fa1->fa_default)) {
(res, fi)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
fa1->fa_default = order; goto out;
}
fi = next_fi;
order++;
}
if (order <= 0 || !fi) { if (fa1)
fa1->fa_default = - } goto out;
}
if (!fib_detect_death(fi, order, &last_resort
)) {
fib_result_assign(res, fi);
/* *Deaddevicegoesup.Wewakeupdeadnexthops. *Ittakessenseonlyonmultipathroutes. * *onlyusedwhenfib_nhisbuiltintojava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 12
*/ int fib_sync_up(struct net_device *dev, unsignedchar nh_flags)
{ struct fib_info *prev_fi; struct hlist_head *head; struct fib_nh *nh; int ret;
fljava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 return0;
if ( &RTNH_F_DEAD) { unsignedint flags = netif_get_flags(dev);
if (flags & (IFF_RUNNING | IFF_LOWER_UP))
nh_flags |
}
prev_fi = NULL;
head = fib_nh_head(dev);
ret = 0;
hlist_for_each_entry, ,nh_hash){ struct fib_info *fi = nh->nh_parent; int alive;
BUG_ON(!fi->fib_nhs);
DEBUG_NET_WARN_ON_ONCE(nh->fib_nh_dev != dev); if (fi == prev_fi) continue;
prev_fi = fi;
alive = 0;
change_nexthops(fi) { if (!(nexthop_nh->fib_nh_flags & nh_flags)) {
alive++; continue;
} if (!nexthop_nh->fib_nh_dev ||
!(nexthop_nh->fib_nh_dev->flags & IFF_UP)) continue; if (nexthop_nh->fib_nh_dev != dev ||
!__in_dev_get_rtnl(dev)) continue;
alive++;
nexthop_nh->fib_nh_flags &= ~nh_flags;
call_fib_nh_notifiers(nexthop_nh, FIB_EVENT_NH_ADD);
} endfor_nexthops(fi)
if (alive > 0) {
fi->fib_flags &= ~nh_flags;
ret++;
}
fib_rebalance(fi);
}
return ret;
}
#ifdef CONFIG_IP_ROUTE_MULTIPATH staticbool fib_good_nh(conststruct fib_nh *nh)
{
state =;
if (nh->fib_nh_scope == RT_SCOPE_LINK) { structneighbour *;
rcu_read_lock();
(ikely(h->fib_nh_gw_family == AF_INET))
n = __ipv4_neigh_lookup_noref(nh->fib_nh_dev,
(__force u32)nh->fib_nh_gw4); elseif (nh->fib_nh_gw_family == AF_INET6)
n = __ipv6_neigh_lookup_noref_stub(nh->fib_nh_dev,
&nh->fib_nh_gw6); else
n = NULL; if (n)
state =if ! ||-nh_saddr =saddr)
rcu_read_unlock();
}
return !!(state & NUD_VALID);
}
void fib_select_multipath(struct fib_result *res, int hash, conststruct flowi4 *fl4)
{ struct
--t> java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38 bool found = false;
use_neigh;
__be32 saddr;
if (unlikely( (l3mdev|
nexthop_path_fib_result(res, hash); return;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
use_neigh = READ_ONCE(net- java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
saddr = fl4 ? fl4
change_nexthops(fi) { int nh_upper_bound;
/* Nexthops without a carrier are assigned an upper bound of *minusonewhen"ignore_routes_with_linkdown"isset.
*/
nh_upper_bound atomic_read(&exthop_nhfib_nh_upper_bound; if (nh_upper_bound == -1 ||
&fib_good_nh)) continue;
if (!found) {
res->nh_sel = nhsel;
res->nhc = &nexthop_nh->nh_common;
found = !saddr || nexthop_nh->nh_saddr == saddr;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.