From 86cf106fed06e6d4a636ae5f5544d9932f79910d Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Mon, 27 Apr 2009 16:26:27 -0700 Subject: [PATCH] auth: some leaks fixes --- src/auth/ExportControl.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/auth/ExportControl.cc b/src/auth/ExportControl.cc index 1f05d0290ee75..d847f8cc01728 100644 --- a/src/auth/ExportControl.cc +++ b/src/auth/ExportControl.cc @@ -393,6 +393,7 @@ class ExportAddrEntry { bool valid; public: ExportAddrEntry(const char *str); + ~ExportAddrEntry(); bool is_valid() { return (group && group->is_valid()); } bool is_authorized(entity_addr_t *addr); @@ -406,6 +407,11 @@ ExportAddrEntry::ExportAddrEntry(const char *str) group->parse_addr_line(str); } +ExportAddrEntry::~ExportAddrEntry() +{ + delete group; +} + bool ExportAddrEntry::is_authorized(entity_addr_t *addr) { GroupEntry *props; @@ -437,6 +443,7 @@ class ExportEntry { vector addr_vec; public: ExportEntry() {} + ~ExportEntry(); ExportEntry(const char *str); void init(const char *str); bool is_authorized(entity_addr_t *addr); @@ -448,6 +455,16 @@ ExportEntry::ExportEntry(const char *str) init(str); } +ExportEntry::~ExportEntry() +{ + vector::iterator iter; + + for (iter = addr_vec.begin(); iter != addr_vec.end(); ++iter) + { + delete *iter; + } +} + void ExportEntry::init(const char *str) { char *val; -- 2.39.5