summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/net.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/net.c b/net/net.c
index be4374ffc4..434c3b411e 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1208,9 +1208,9 @@ void net_process_received_packet(uchar *in_packet, int len)
case PROT_IP:
debug_cond(DEBUG_NET_PKT, "Got IP\n");
/* Before we start poking the header, make sure it is there */
- if (len < IP_UDP_HDR_SIZE) {
+ if (len < IP_HDR_SIZE) {
debug("len bad %d < %lu\n", len,
- (ulong)IP_UDP_HDR_SIZE);
+ (ulong)IP_HDR_SIZE);
return;
}
/* Check the packet length */
@@ -1219,6 +1219,10 @@ void net_process_received_packet(uchar *in_packet, int len)
return;
}
len = ntohs(ip->ip_len);
+ if (len < IP_HDR_SIZE) {
+ debug("bad ip->ip_len %d < %d\n", len, (int)IP_HDR_SIZE);
+ return;
+ }
debug_cond(DEBUG_NET_PKT, "len=%d, v=%02x\n",
len, ip->ip_hl_v & 0xff);