]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
auth: some leaks fixes
authorYehuda Sadeh <yehuda@hq.newdream.net>
Mon, 27 Apr 2009 23:26:27 +0000 (16:26 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Mon, 27 Apr 2009 23:26:27 +0000 (16:26 -0700)
src/auth/ExportControl.cc

index 1f05d0290ee7513dd67f98ee21708afa9c39ad9f..d847f8cc01728d4520919b37affb8eff0c3b40ed 100644 (file)
@@ -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<ExportAddrEntry *> 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<ExportAddrEntry *>::iterator iter;
+
+       for (iter = addr_vec.begin(); iter != addr_vec.end(); ++iter)
+       {
+               delete *iter;
+       }
+}
+
 void ExportEntry::init(const char *str)
 {
        char *val;