From b23c5e0ff4e9071b2568bf2f7d437bc13273d17d Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 14 May 1999 18:03:09 +0000 Subject: Added ip_skip_header() and modified OSPF to use it. --- proto/ospf/ospf.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'proto/ospf') diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index ef65064..954df8e 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -80,16 +80,15 @@ ospf_rx_hook(sock *sk, int size) DBG(sk->iface->name); DBG(".\n"); - ps=(struct ospf_packet *)(sk->rbuf+5*4); - - if(size<=(20+sizeof(struct ospf_packet))) + ps = (struct ospf_packet *) ipv4_skip_header(sk->rbuf, &size); + if(!ps || size < sizeof(struct ospf_packet)) { log("%s: Bad packet received: too short", p->name); log("%s: Discarding",p->name); return(1); } - if((ntohs(ps->length))!=(size-20)) + if(ntohs(ps->length) != size) { log("%s: Bad packet received: size fields does not match", p->name); log("%s: Discarding",p->name); -- cgit v1.2.3