From: Jo-Philipp Wich <jow@openwrt.org>
Date: Tue, 18 May 2010 20:15:47 +0000 (+0000)
Subject: firewall: fix a possible deadlock when the firewall config has syntax errors during... 
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=91519d51e9e2198d9afc5f1563084a307a5e7d4d;p=openwrt%2Fstaging%2Fynezz.git

firewall: fix a possible deadlock when the firewall config has syntax errors during restart

SVN-Revision: 21501
---

diff --git a/package/firewall/files/lib/core.sh b/package/firewall/files/lib/core.sh
index d0b87a770b..5f06ffe3fb 100644
--- a/package/firewall/files/lib/core.sh
+++ b/package/firewall/files/lib/core.sh
@@ -8,14 +8,15 @@ include /lib/network
 fw_start() {
 	fw_init
 
-	lock /var/lock/firewall.start
-
 	FW_DEFAULTS_APPLIED=
 
 	fw_is_loaded && {
 		echo "firewall already loaded" >&2
 		exit 1
 	}
+
+	lock /var/lock/firewall.start
+
 	uci_set_state firewall core "" firewall_state
 
 	fw_clear DROP
@@ -93,6 +94,7 @@ fw_die() {
 	echo "Error:" "$@" >&2
 	fw_log error "$@"
 	fw_stop
+	lock -u /var/lock/firewall.start
 	exit 1
 }