diff options
author | Ondrej Filip <feela@network.cz> | 2000-09-04 00:18:40 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2000-09-04 00:18:40 +0200 |
commit | fdb19982020abeddf2d9eb73efae92ae2cc58d93 (patch) | |
tree | 4c837c9252bb1d3324c0a4005cd600d3081c7810 /proto/ospf/rt.c | |
parent | f02e4258b9bb7f823ddfbfb88284c868502b1433 (diff) | |
download | bird-fdb19982020abeddf2d9eb73efae92ae2cc58d93.tar bird-fdb19982020abeddf2d9eb73efae92ae2cc58d93.zip |
Serious bug in ext lsa origination found. Going for 1.0.4.
Diffstat (limited to 'proto/ospf/rt.c')
-rw-r--r-- | proto/ospf/rt.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index a7b541d..39e84bd 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -96,7 +96,7 @@ ospf_rt_spfa(struct ospf_area *oa) { case LSA_T_RT: rt=(struct ospf_lsa_rt *)act->lsa_body; - if((rt->VEB)&(1>>LSA_RT_V)) oa->trcap=1; + if(rt->veb.bit.v) oa->trcap=1; rr=(struct ospf_lsa_rt_link *)(rt+1); DBG(" Number of links: %u\n",rt->links); for(i=0;i<rt->links;i++) @@ -269,6 +269,7 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */ struct proto *p=&po->proto; struct ospf_lsa_ext *le; struct ospf_lsa_ext_tos *lt; + struct ospf_lsa_rt *rt; int mlen; ip_addr ip,nnh; struct iface *nnhi=NULL; @@ -347,7 +348,8 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */ } } } - if((absr==NULL)||(absr->dist==LSINFINITY)) + rt=(struct ospf_lsa_rt *)absr->lsa_body; + if((absr==NULL)||(absr->dist==LSINFINITY)||(rt->veb.bit.e==0)) { DBG("ASBR is null or its dist=INF\n"); continue; |