Remove dhcp_extra_opt name after first newline character

Passing newline as extra dhcp option name to the DHCP agent causes
issues with configuration of the dnsmasq process for the network.
This patch removes everything what is after first newline character
in the dhcp_extra_opt's name before building dnsmasq's config.

Closes-bug: #1943930
Change-Id: Iab2832e750ff5ef09c5dcacae4dbff4f9e62bc2d
(cherry picked from commit 5abd1fb610)
This commit is contained in:
Slawek Kaplonski 2021-09-17 10:57:18 +02:00
parent ef693000d4
commit 41ed4d7f43
2 changed files with 2 additions and 1 deletions

View File

@ -1312,6 +1312,7 @@ class Dnsmasq(DhcpLocalProcess):
def _format_option(self, ip_version, tag, option, *args):
"""Format DHCP option by option name or code."""
option = str(option)
option = option.split("\n", 1)[0]
pattern = "(tag:(.*),)?(.*)$"
matches = re.match(pattern, option)
extra_tag = matches.groups()[0]

View File

@ -230,7 +230,7 @@ class FakeV6PortExtraOpt(object):
DhcpOpt(opt_name='dns-server',
opt_value='ffea:3ba5:a17a:4ba3::100',
ip_version=constants.IP_VERSION_6),
DhcpOpt(opt_name='malicious-option',
DhcpOpt(opt_name='malicious-option\nwith-new-line',
opt_value='aaa\nbbb.ccc\n',
ip_version=constants.IP_VERSION_6)]