From: Alan T. DeKok Date: Tue, 1 Sep 2015 22:36:56 +0000 (-0400) Subject: Fix for CID #1321695 X-Git-Tag: release_3_0_10~187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=939eacd7afe3fe8127a3ff52dca80ac149a3e275;p=thirdparty%2Ffreeradius-server.git Fix for CID #1321695 --- diff --git a/src/modules/proto_dhcp/dhcp.c b/src/modules/proto_dhcp/dhcp.c index ba5903f6620..182c6527349 100644 --- a/src/modules/proto_dhcp/dhcp.c +++ b/src/modules/proto_dhcp/dhcp.c @@ -338,7 +338,7 @@ RADIUS_PACKET *fr_dhcp_recv(int sockfd) return NULL; } - if ((code[1] < 1) || (code[2] == 0) || (code[2] > DHCP_MAX_MESSAGE_TYPE)) { + if ((code[1] < 1) || (code[2] == 0) || (code[2] >= DHCP_MAX_MESSAGE_TYPE)) { fr_strerror_printf("Unknown value %d for message-type option", code[2]); rad_free(&packet); return NULL; @@ -399,7 +399,7 @@ RADIUS_PACKET *fr_dhcp_recv(int sockfd) char src_ip_buf[256], dst_ip_buf[256]; if ((packet->code >= PW_DHCP_DISCOVER) && - (packet->code <= (1024 + DHCP_MAX_MESSAGE_TYPE))) { + (packet->code < (1024 + DHCP_MAX_MESSAGE_TYPE))) { name = dhcp_message_types[packet->code - PW_DHCP_OFFSET]; } else { snprintf(type_buf, sizeof(type_buf), "%d", @@ -454,7 +454,7 @@ int fr_dhcp_send(RADIUS_PACKET *packet) char dst_ip_buf[INET6_ADDRSTRLEN]; if ((packet->code >= PW_DHCP_DISCOVER) && - (packet->code <= (1024 + DHCP_MAX_MESSAGE_TYPE))) { + (packet->code < (1024 + DHCP_MAX_MESSAGE_TYPE))) { name = dhcp_message_types[packet->code - PW_DHCP_OFFSET]; } else { snprintf(type_buf, sizeof(type_buf), "%d", @@ -1413,7 +1413,7 @@ int fr_dhcp_encode(RADIUS_PACKET *packet) #ifndef NDEBUG if ((packet->code >= PW_DHCP_DISCOVER) && - (packet->code <= (1024 + DHCP_MAX_MESSAGE_TYPE))) { + (packet->code < (1024 + DHCP_MAX_MESSAGE_TYPE))) { name = dhcp_message_types[packet->code - PW_DHCP_OFFSET]; } else { name = "?Unknown?"; @@ -1888,7 +1888,7 @@ int fr_dhcp_send_raw_packet(int sockfd, struct sockaddr_ll *p_ll, RADIUS_PACKET char dst_ip_buf[INET6_ADDRSTRLEN]; if ((packet->code >= PW_DHCP_DISCOVER) && - (packet->code <= (1024 + DHCP_MAX_MESSAGE_TYPE))) { + (packet->code < (1024 + DHCP_MAX_MESSAGE_TYPE))) { name = dhcp_message_types[packet->code - PW_DHCP_OFFSET]; } else { snprintf(type_buf, sizeof(type_buf), "%d", @@ -2091,7 +2091,7 @@ RADIUS_PACKET *fr_dhcp_recv_raw_packet(int sockfd, struct sockaddr_ll *p_ll, RAD char src_ip_buf[256], dst_ip_buf[256]; if ((packet->code >= PW_DHCP_DISCOVER) && - (packet->code <= (1024 + DHCP_MAX_MESSAGE_TYPE))) { + (packet->code < (1024 + DHCP_MAX_MESSAGE_TYPE))) { name = dhcp_message_types[packet->code - PW_DHCP_OFFSET]; } else { snprintf(type_buf, sizeof(type_buf), "%d", packet->code - PW_DHCP_OFFSET);