Blame SOURCES/freeradius-FR-GV-206-decode-option-60-string-not-63-octets-and-.patch
|
|
653d32 |
From 46aa2d51f137ca34842dd744d17321ed7c11b386 Mon Sep 17 00:00:00 2001
|
|
|
653d32 |
From: "Alan T. DeKok" <aland@freeradius.org>
|
|
|
653d32 |
Date: Mon, 3 Jul 2017 11:36:13 -0400
|
|
|
653d32 |
Subject: [PATCH] FR-GV-206 - decode option 60 (string) not 63 (octets), and
|
|
|
653d32 |
check length
|
|
|
653d32 |
|
|
|
653d32 |
---
|
|
|
653d32 |
src/modules/proto_dhcp/dhcp.c | 4 ++--
|
|
|
653d32 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
653d32 |
|
|
|
653d32 |
diff --git a/src/modules/proto_dhcp/dhcp.c b/src/modules/proto_dhcp/dhcp.c
|
|
|
653d32 |
index 98d87509d..a66a931cb 100644
|
|
|
653d32 |
--- a/src/modules/proto_dhcp/dhcp.c
|
|
|
653d32 |
+++ b/src/modules/proto_dhcp/dhcp.c
|
|
|
653d32 |
@@ -1097,8 +1097,8 @@ int fr_dhcp_decode(RADIUS_PACKET *packet)
|
|
|
653d32 |
/*
|
|
|
653d32 |
* Vendor is "MSFT 98"
|
|
|
653d32 |
*/
|
|
|
653d32 |
- vp = fr_pair_find_by_num(head, 63, DHCP_MAGIC_VENDOR, TAG_ANY);
|
|
|
653d32 |
- if (vp && (strcmp(vp->vp_strvalue, "MSFT 98") == 0)) {
|
|
|
653d32 |
+ vp = fr_pair_find_by_num(head, 60, DHCP_MAGIC_VENDOR, TAG_ANY);
|
|
|
653d32 |
+ if (vp && (vp->vp_length >= 7) && (memcmp(vp->vp_octets, "MSFT 98", 7) == 0)) {
|
|
|
653d32 |
vp = fr_pair_find_by_num(head, 262, DHCP_MAGIC_VENDOR, TAG_ANY);
|
|
|
653d32 |
|
|
|
653d32 |
/*
|
|
|
653d32 |
--
|
|
|
653d32 |
2.13.2
|
|
|
653d32 |
|