From: Ondrej Filip Date: Mon, 5 Jun 2000 18:09:15 +0000 (+0000) Subject: Better checksum checking. X-Git-Tag: v1.2.0~639 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aba5e89f9310bb33c7362b02108e640983ad0819;p=thirdparty%2Fbird.git Better checksum checking. --- diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index 2b94b60d4..8fbef111d 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -276,6 +276,7 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, struct top_hash_entry *lsadb; u16 lenn; int diff=((u8 *)lsa)-((u8 *)ps); + u16 chsum; if(((diff+sizeof(struct ospf_lsa_header))>=size) || ((ntohs(lsa->length)+diff)>size)) @@ -290,7 +291,8 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, break; } /* pg 143 (1) */ - if(lsa->checksum!=lsasum_check(lsa,NULL,po)) + chsum=lsa->checksum; + if(chsum!=lsasum_check(lsa,NULL,po)) { log("Received bad lsa checksum from %I",n->rid); continue;