dnsmasq: fix dhcp-host entries with empty macs

Due to improper localization of helper variables, "config host" entries
without a given mac address may inherit the mac address of a preceeding,
leading to invalid generated netive configuration.

Fix the issue by marking the "macs" and "tags" helper variables in
dhcp_host_add() local, avoiding the need for explicitely resetting them
with each invocation.

Reported-by: Russell Senior <russell@personaltelco.net>
Tested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2017-11-28 11:38:40 +00:00
parent 47fa8654a1
commit fcfd5cdb59

View file

@ -277,7 +277,7 @@ dhcp_match_add() {
dhcp_host_add() {
local cfg="$1"
local hosttag nametime addrs duids
local hosttag nametime addrs duids macs tags
config_get_bool force "$cfg" force 0
@ -305,7 +305,6 @@ dhcp_host_add() {
if [ -n "$mac" ]; then
# --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap
# many MAC are possible to track a laptop ON/OFF dock
macs=""
for m in $mac; do append macs "$m" ","; done
fi
@ -326,7 +325,6 @@ dhcp_host_add() {
hex_to_hostid hostid "$hostid"
fi
tags=""
if [ -n "$tag" ]; then
for t in $tag; do append tags "$t" ",set:"; done
fi