Repository : http://git.fedorahosted.org/cgit/firewalld-recode.git
On branch : master
commit ceacd932d177411c33d749ef212a34ea4c3773ff Author: Daniel Kopecek dkopecek@redhat.com Date: Wed Jan 21 13:23:17 2015 +0100
Delete the backend object in Firewall class dtor
src/Daemon/Firewall/Firewall.cpp | 10 ++++++++-- src/Daemon/Firewall/Firewall.hpp | 1 + 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/Daemon/Firewall/Firewall.cpp b/src/Daemon/Firewall/Firewall.cpp index 5832560..57aa184 100644 --- a/src/Daemon/Firewall/Firewall.cpp +++ b/src/Daemon/Firewall/Firewall.cpp @@ -31,6 +31,13 @@ namespace firewalld _backend = new LinuxXTables(); }
+ Firewall::~Firewall() + { + if (_backend != nullptr) { + delete _backend; + } + } + bool Firewall::directIPv4getTables(StringVector& tables) { tables = _ip4tables.listTables(); @@ -296,9 +303,8 @@ namespace firewalld Backend& Firewall::backend() { if (_backend == nullptr) { - LOG(FATAL) << "BUG: Firewall backend not set!"; + throw std::runtime_error("BUG: Firewall backend not set! Cannot return a reference to it."); } - return *_backend; }
diff --git a/src/Daemon/Firewall/Firewall.hpp b/src/Daemon/Firewall/Firewall.hpp index 8d0d742..425540f 100644 --- a/src/Daemon/Firewall/Firewall.hpp +++ b/src/Daemon/Firewall/Firewall.hpp @@ -40,6 +40,7 @@ namespace firewalld { public: Firewall(); + ~Firewall();
// Direct interface bool directIPv4getTables(StringVector& tables);
firewalld-recode@lists.fedorahosted.org