From 51c04e7abfa8286a12f5c59c84f3bd868079de07 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Wed, 23 Dec 2020 14:33:24 +0100 Subject: [PATCH] DHCPDv4: hostname validation should include domain. closes https://github.com/opnsense/core/issues/4544 --- src/www/services_dhcp_edit.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/www/services_dhcp_edit.php b/src/www/services_dhcp_edit.php index 7f12f3769..3d723ad81 100644 --- a/src/www/services_dhcp_edit.php +++ b/src/www/services_dhcp_edit.php @@ -125,11 +125,24 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } /* check for overlaps */ + if (!empty($pconfig['domain'])) { + $this_fqdn = $pconfig['hostname'] . "." . $pconfig['domain']; + } else { + $this_fqdn = $pconfig['hostname'] . "." . $config['system']['domain']; + } foreach ($a_maps as $mapent) { if (isset($id) && ($a_maps[$id] === $mapent)) { continue; } - if ((($mapent['hostname'] == $pconfig['hostname']) && $mapent['hostname']) || + if (empty($mapent['hostname'])) { + $fqdn = ""; + } elseif (!empty($mapent['domain'])) { + $fqdn = $mapent['hostname'] . "." . $mapent['domain']; + } else { + $fqdn = $mapent['hostname'] . "." . $config['system']['domain']; + } + + if (($fqdn == $this_fqdn) || (($mapent['mac'] == $pconfig['mac']) && $mapent['mac']) || (($mapent['ipaddr'] == $pconfig['ipaddr']) && $mapent['ipaddr'] ) || (($mapent['cid'] == $pconfig['cid']) && $mapent['cid'])) {