From aba5e89f9310bb33c7362b02108e640983ad0819 Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Mon, 5 Jun 2000 18:09:15 +0000 Subject: Better checksum checking. --- proto/ospf/lsupd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'proto/ospf') diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index 2b94b60d..8fbef111 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; -- cgit v1.2.3