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 b1ceec0efc
commit 073c5f87e5
2 changed files with 2 additions and 1 deletions

View File

@ -1307,6 +1307,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

@ -231,7 +231,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)]