Browse Source

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.

Depends-On: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/815518
Closes-bug: #1943930
Change-Id: Iab2832e750ff5ef09c5dcacae4dbff4f9e62bc2d
(cherry picked from commit 5abd1fb610)
changes/78/810878/3
Slawek Kaplonski 8 months ago
parent
commit
07d5944340
  1. 1
      neutron/agent/linux/dhcp.py
  2. 2
      neutron/tests/unit/agent/linux/test_dhcp.py

1
neutron/agent/linux/dhcp.py

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

2
neutron/tests/unit/agent/linux/test_dhcp.py

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

Loading…
Cancel
Save