From: Jo-Philipp Wich Date: Tue, 28 Nov 2017 11:38:40 +0000 (+0000) Subject: dnsmasq: fix dhcp-host entries with empty macs X-Git-Tag: v18.06.0-rc1~1656 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=commitdiff_plain;h=fcfd5cdb59d25d4bd1ec410f32b452c139f5e288 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 Tested-by: Kevin Darbyshire-Bryant Signed-off-by: Jo-Philipp Wich --- diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index 88c2ce6ebf..2fd56ed4ab 100644 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -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