From: Yehuda Sadeh Date: Mon, 27 Apr 2009 23:26:27 +0000 (-0700) Subject: auth: some leaks fixes X-Git-Tag: v0.7.3~43 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=86cf106fed06e6d4a636ae5f5544d9932f79910d;p=ceph.git auth: some leaks fixes --- diff --git a/src/auth/ExportControl.cc b/src/auth/ExportControl.cc index 1f05d0290ee..d847f8cc017 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;