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
This commit is contained in:
Slawek Kaplonski 2021-09-17 10:57:18 +02:00
parent 781edc8f64
commit 5abd1fb610
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)]