Repository :
http://git.fedorahosted.org/cgit/firewalld-recode.git
On branch : master
---------------------------------------------------------------
commit 6659968f29e91263dedc0015d3ccde922c227d29
Author: Daniel Kopecek <dkopecek(a)redhat.com>
Date: Tue Oct 7 14:42:28 2014 +0200
Check that at least one zone is defined
---------------------------------------------------------------
src/Daemon/FirewallD.cpp | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/Daemon/FirewallD.cpp b/src/Daemon/FirewallD.cpp
index b3422ab..db9507d 100644
--- a/src/Daemon/FirewallD.cpp
+++ b/src/Daemon/FirewallD.cpp
@@ -275,12 +275,19 @@ namespace firewalld
{
const UString& default_zone_name = _fw.getDefaultZoneName();
- // 1) Default zone is not empty
+ // 1) Number of defined zones. At least one zone has to be defined
+ // in order to be able to set a default one.
+ if (definedZones().size() < 1) {
+ throw ConfigurationError("firewalld.conf",
+ "No zones defined. Forgot to set DefinitionDirs or
StaticDefinitionDirs?");
+ }
+
+ // 2) Default zone is not empty
if (default_zone_name.empty()) {
throw ConfigurationError("firewalld.conf", "Default zone is not
set");
}
- // 2) Default zone exists
+ // 3) Default zone exists
if (lookupZone(default_zone_name) == nullptr) {
throw ConfigurationError("firewalld.conf",
"Default zone set to \"" + default_zone_name + "\" but
no such zone defined");