firewall: do not produce 0.0.0.0/0 if a symbolic masq_src or masq_dest is given but...
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 27 Oct 2011 18:14:55 +0000 (18:14 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 27 Oct 2011 18:14:55 +0000 (18:14 +0000)
SVN-Revision: 28628

package/firewall/Makefile
package/firewall/files/lib/core_init.sh
package/firewall/files/lib/fw.sh

index 637d0ecccb8b9d3da44f6629a3a26ecd79c7003f..57a6e016ab682367b8bd6459844fdcfac9a3b96d 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=firewall
 
 PKG_VERSION:=2
-PKG_RELEASE:=39
+PKG_RELEASE:=40
 
 include $(INCLUDE_DIR)/package.mk
 
index f2cde1c4704f148f1e60c68d9f16d91fb085b3ab..a0b095865ef7e4bbc19c71100772913871700b51 100644 (file)
@@ -247,13 +247,13 @@ fw_load_zone() {
                for msrc in ${zone_masq_src:-0.0.0.0/0}; do
                        case "$msrc" in
                                *.*) fw_get_negation msrc '-s' "$msrc" ;;
-                               *)   fw_get_subnet4 msrc '-s' "$msrc" ;;
+                               *)   fw_get_subnet4 msrc '-s' "$msrc" || break ;;
                        esac
 
                        for mdst in ${zone_masq_dest:-0.0.0.0/0}; do
                                case "$mdst" in
                                        *.*) fw_get_negation mdst '-d' "$mdst" ;;
-                                       *)   fw_get_subnet4 mdst '-d' "$mdst" ;;
+                                       *)   fw_get_subnet4 mdst '-d' "$mdst" || break ;;
                                esac
 
                                fw add $mode n ${chain}_nat MASQUERADE $ { $msrc $mdst }
index 7922d222f8da6e38b0529cac06eeb64de411780b..0814ffc315506ac2ea7a3f231a813f80ad6605fe 100644 (file)
@@ -255,9 +255,12 @@ fw_get_subnet4() {
                        [ "${_name#!}" != "$_name" ] && \
                                export -n -- "$_var=! $_flag $_ipaddr/${_netmask:-255.255.255.255}" || \
                                export -n -- "$_var=$_flag $_ipaddr/${_netmask:-255.255.255.255}"
+                       return 0
                ;;
-               *) export -n -- "$_var=" ;;
        esac
+
+       export -n -- "$_var="
+       return 1
 }
 
 fw_check_icmptype4() {