aboutsummaryrefslogtreecommitdiffstats
path: root/package/firewall/files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-10-22 20:11:25 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-10-22 20:11:25 +0000
commit091d0e2e9dfa463c27d0b4e37bb3aa7f13d047f4 (patch)
treececba7f13af2776b3d12c8ab53ac06fd231710cc /package/firewall/files
parent6ee2c2b79cdd118e49d28a28ae5c69b0b0553581 (diff)
downloadmaster-187ad058-091d0e2e9dfa463c27d0b4e37bb3aa7f13d047f4.tar.gz
master-187ad058-091d0e2e9dfa463c27d0b4e37bb3aa7f13d047f4.tar.bz2
master-187ad058-091d0e2e9dfa463c27d0b4e37bb3aa7f13d047f4.zip
[package] firewall: fix possible expansion of "*" when rules with "option src *" are processed
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28527 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/firewall/files')
-rw-r--r--package/firewall/files/lib/fw.sh15
1 files changed, 10 insertions, 5 deletions
diff --git a/package/firewall/files/lib/fw.sh b/package/firewall/files/lib/fw.sh
index bf7156e8ce..a8a7911494 100644
--- a/package/firewall/files/lib/fw.sh
+++ b/package/firewall/files/lib/fw.sh
@@ -211,12 +211,17 @@ fw_get_family_mode() {
local _mode="$4"
local _ipv4 _ipv6
- [ -n "$FW_ZONES4$FW_ZONES6" ] && {
- list_contains FW_ZONES4 $_zone && _ipv4=1 || _ipv4=0
- list_contains FW_ZONES6 $_zone && _ipv6=1 || _ipv6=0
+ [ "$_zone" != "*" ] && {
+ [ -n "$FW_ZONES4$FW_ZONES6" ] && {
+ list_contains FW_ZONES4 "$_zone" && _ipv4=1 || _ipv4=0
+ list_contains FW_ZONES6 "$_zone" && _ipv6=1 || _ipv6=0
+ } || {
+ _ipv4=$(uci_get_state firewall core "${_zone}_ipv4" 0)
+ _ipv6=$(uci_get_state firewall core "${_zone}_ipv6" 0)
+ }
} || {
- _ipv4=$(uci_get_state firewall core ${_zone}_ipv4 0)
- _ipv6=$(uci_get_state firewall core ${_zone}_ipv6 0)
+ _ipv4=1
+ _ipv6=1
}
case "$_hint:$_ipv4:$_ipv6" in