File 5759b20a_port.patch of Package freeradius-server.27524
commit 5759b20af99af6d30924f0efd8da5eac2a17163d
Author: Alan T. DeKok <aland@freeradius.org>
Date: Mon Jul 3 11:36:13 2017 -0400
FR-GV-206 - decode option 60 (string) not 63 (octets), and check length
Index: freeradius-server-3.0.3/src/modules/proto_dhcp/dhcp.c
===================================================================
--- freeradius-server-3.0.3.orig/src/modules/proto_dhcp/dhcp.c
+++ freeradius-server-3.0.3/src/modules/proto_dhcp/dhcp.c
@@ -895,8 +895,8 @@ int fr_dhcp_decode(RADIUS_PACKET *packet
/*
* Vendor is "MSFT 98"
*/
- vp = pairfind(head, 63, DHCP_MAGIC_VENDOR, TAG_ANY);
- if (vp && (strcmp(vp->vp_strvalue, "MSFT 98") == 0)) {
+ vp = pairfind(head, 60, DHCP_MAGIC_VENDOR, TAG_ANY);
+ if (vp && (vp->length >= 7) && (memcmp(vp->vp_octets, "MSFT 98", 7) == 0)) {
vp = pairfind(head, 262, DHCP_MAGIC_VENDOR, TAG_ANY);
/*