The kernel will not hand us a malformed packet.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
return -1;
}
- if (ip_hlen < PIM_IP_HEADER_MIN_LEN) {
- zlog_warn("IP packet header size=%zu shorter than minimum=%d",
- ip_hlen, PIM_IP_HEADER_MIN_LEN);
- return -1;
- }
- if (ip_hlen > PIM_IP_HEADER_MAX_LEN) {
- zlog_warn("IP packet header size=%zu greater than maximum=%d",
- ip_hlen, PIM_IP_HEADER_MAX_LEN);
- return -1;
- }
-
igmp_msg = buf + ip_hlen;
msg_type = *igmp_msg;
igmp_msg_len = len - ip_hlen;
ip_hdr = (struct ip *) buf;
ip_hlen = ip_hdr->ip_hl << 2; /* ip_hl gives length in 4-byte words */
- if (ip_hlen < PIM_IP_HEADER_MIN_LEN) {
- if (PIM_DEBUG_PIM_PACKETS)
- zlog_debug("IP packet header size=%zu shorter than minimum=%d",
- ip_hlen, PIM_IP_HEADER_MIN_LEN);
- return -1;
- }
- if (ip_hlen > PIM_IP_HEADER_MAX_LEN) {
- if (PIM_DEBUG_PIM_PACKETS)
- zlog_debug("IP packet header size=%zu greater than maximum=%d",
- ip_hlen, PIM_IP_HEADER_MAX_LEN);
- return -1;
- }
-
pim_msg = buf + ip_hlen;
pim_msg_len = len - ip_hlen;
#define PIMD_DEFAULT_CONFIG "pimd.conf"
#define PIMD_VTY_PORT 2611
-#define PIM_IP_HEADER_MIN_LEN (20)
-#define PIM_IP_HEADER_MAX_LEN (60)
#define PIM_IP_PROTO_IGMP (2)
#define PIM_IP_PROTO_PIM (103)
#define PIM_IGMP_MIN_LEN (8)