From 0b44419f282bff17b9504da361910edc9c6f7758 Mon Sep 17 00:00:00 2001
From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Tue, 18 May 2010 20:15:47 +0000
Subject: [package] firewall: fix a possible deadlock when the firewall config
 has syntax errors during restart

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21501 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/firewall/files/lib/core.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'package/firewall')

diff --git a/package/firewall/files/lib/core.sh b/package/firewall/files/lib/core.sh
index d0b87a770..5f06ffe3f 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
 }
 
-- 
cgit v1.2.3