diff options
-rw-r--r-- | proto/ospf/ospf.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 954df8e..de16488 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -81,9 +81,16 @@ ospf_rx_hook(sock *sk, int size) DBG(".\n"); ps = (struct ospf_packet *) ipv4_skip_header(sk->rbuf, &size); - if(!ps || size < sizeof(struct ospf_packet)) + if(ps==NULL) { - log("%s: Bad packet received: too short", p->name); + log("%s: Bad packet received: bad header", p->name); + log("%s: Discarding",p->name); + return(1); + } + + if(size < sizeof(struct ospf_packet)) + { + log("%s: Bad packet received: too short (%d bytes)", p->name, size); log("%s: Discarding",p->name); return(1); } |