Commit ff73f1d6 authored by Ondřej Filip's avatar Ondřej Filip

More robust tests in packet receiving.

parent 13741548
...@@ -51,15 +51,11 @@ ospf_rx_hook(sock *sk, int size) ...@@ -51,15 +51,11 @@ ospf_rx_hook(sock *sk, int size)
{ {
#ifndef IPV6 #ifndef IPV6
struct ospf_packet *ps; struct ospf_packet *ps;
struct ospf_iface *ifa; struct ospf_iface *ifa=(struct ospf_iface *)(sk->data);
struct proto *p; struct proto *p=(struct proto *)(ifa->proto);
int i; int i;
u8 *pu8; u8 *pu8;
ifa=(struct ospf_iface *)(sk->data);
p=(struct proto *)(ifa->proto);
DBG("%s: RX_Hook called on interface %s.\n",p->name, sk->iface->name); DBG("%s: RX_Hook called on interface %s.\n",p->name, sk->iface->name);
ps = (struct ospf_packet *) ipv4_skip_header(sk->rbuf, &size); ps = (struct ospf_packet *) ipv4_skip_header(sk->rbuf, &size);
...@@ -77,7 +73,7 @@ ospf_rx_hook(sock *sk, int size) ...@@ -77,7 +73,7 @@ ospf_rx_hook(sock *sk, int size)
return(1); return(1);
} }
if(ntohs(ps->length) != size) if((ntohs(ps->length)!=size)||(size!=(4*(size/4))))
{ {
log("%s: Bad OSPF packet received: size field does not match", p->name); log("%s: Bad OSPF packet received: size field does not match", p->name);
log("%s: Discarding",p->name); log("%s: Discarding",p->name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment