dnsmasq: add logfacility file to jail mounts
authorDaniel Golle <daniel@makrotopia.org>
Mon, 25 Apr 2022 17:56:52 +0000 (18:56 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 25 Apr 2022 18:28:12 +0000 (19:28 +0100)
If logfacility is a path to a file it needs to be r/w mounted in the
sandbox as well for dnsmasq to work.

Reported-by: @iointerrupt
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
package/network/services/dnsmasq/files/dnsmasq.init

index d95502c0da6cb9e07c95dccf6d1728d05aa40094..040ceaea2fea1879f8693b69c4175ef0ce1edd5a 100755 (executable)
@@ -820,7 +820,7 @@ dnsmasq_ipset_add() {
 dnsmasq_start()
 {
        local cfg="$1"
-       local disabled user_dhcpscript
+       local disabled user_dhcpscript logfacility
        local resolvfile resolvdir localuse=0
 
        config_get_bool disabled "$cfg" disabled 0
@@ -933,7 +933,7 @@ dnsmasq_start()
        append_bool "$cfg" scriptarp "--script-arp"
 
        append_parm "$cfg" logfacility "--log-facility"
-
+       config_get logfacility "$cfg" "logfacility"
        append_parm "$cfg" cachesize "--cache-size"
        append_parm "$cfg" dnsforwardmax "--dns-forward-max"
        append_parm "$cfg" port "--port"
@@ -1167,6 +1167,10 @@ dnsmasq_start()
        procd_add_jail_mount $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_dhcpscript
        procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/ethers
        procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile
+       case "$logfacility" in */*)
+               [ ! -e "$logfacility" ] && touch "$logfacility"
+               procd_add_jail_mount_rw "$logfacility"
+       esac
 
        procd_close_instance
 }