Report information
The Basics
Id:
39863
Status:
resolved
Estimated:
24 hours (1,440 minutes)
Worked:
8.83 hours (530 minutes)
Users:
tmark: 50 minutes
sar: 8 hours (480 minutes)
Left:
24 hours (1,440 minutes)
Priority:
Low/Low
Queue:

People
Owner:
Nobody in particular
Cc:
AdminCc:

BugTracker
Version Fixed:
(no value)
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
4.4.0
Priority:
(no value)
Severity:
S1 High
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
DHCP Common
Area:
feature

Dates
Created:Tue, 23 Jun 2015 10:58:30 -0400
Updated:Tue, 12 Dec 2017 07:38:35 -0500
Closed:Wed, 10 Aug 2016 23:30:42 -0400



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

Subject: [Infoblox] DHCP Bug in parsing options with encapsulated values
Ramesh Damodaran (of Infoblox) writes, on Support #8404: The parse_option_buffer() function in options.c fails to add options with encapsulated values to the dhcp namespace. Option 82, relay-agent-information, is one such option that send encapsulated values. The sub-options within the encapsulated value are correctly added to the appropriate option universe but the main option is not added to the dhcp universe. In the case of option 82 the sub-options are added to the agent option universe. This bug prevents classes with match statements such as 'if (exists relay-agent-information)' from correctly identifying clients that sent requests with the relay-agent-information option included. In all cases the clients are treated as if they did not send the relay-agent-information option. My proposed fix is to add an else clause that calls save_option_buffer() to the if statement starting on line 194 in common/options.c. Here's a diff with the proposed fix: --- options.c 2015-06-19 14:25:41.837564075 -0700 +++ options.c.fixed 2015-06-19 14:26:19.700626162 -0700 @@ -256,6 +256,10 @@ } } } + else { + save_option_buffer(universe, options, bp, bp->data + offset, len, code, 1); + } + option_dereference(&option, MDL); offset += len; } I've tested this and classes that failed to match relay-agent-information options now work.