]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_httpd_stats.cpp
Fix null dereference caused by tracking dummy
[user/henk/code/inspircd.git] / src / modules / m_httpd_stats.cpp
index cfe8f9782da72dc4cb907bedb92167fac9c0b35e..5288130ce359c246ca3557e5956acc22740a1a40 100644 (file)
@@ -69,14 +69,14 @@ class ModuleHttpStats : public Module
        void DumpMeta(std::stringstream& data, Extensible* ext)
        {
                data << "<metadata>";
-               for(ExtensibleStore::const_iterator i = ext->GetExtList().begin(); i != ext->GetExtList().end(); i++)
+               for(Extensible::ExtensibleStore::const_iterator i = ext->GetExtList().begin(); i != ext->GetExtList().end(); i++)
                {
                        ExtensionItem* item = i->first;
                        std::string value = item->serialize(FORMAT_USER, ext, i->second);
-                       if (value.empty())
-                               data << "<meta name=\"" << item->key << "\"/>";
-                       else
+                       if (!value.empty())
                                data << "<meta name=\"" << item->key << "\">" << Sanitize(value) << "</meta>";
+                       else if (!item->key.empty())
+                               data << "<meta name=\"" << item->key << "\"/>";
                }
                data << "</metadata>";
        }
@@ -144,7 +144,9 @@ class ModuleHttpStats : public Module
                                                Membership* memb = x->second;
                                                data << "<channelmember><uid>" << memb->user->uuid << "</uid><privs>"
                                                        << Sanitize(c->GetAllPrefixChars(x->first)) << "</privs><modes>"
-                                                       << memb->modes << "</modes></channelmember>";
+                                                       << memb->modes << "</modes>";
+                                               DumpMeta(data, memb);
+                                               data << "</channelmember>";
                                        }
 
                                        DumpMeta(data, c);
@@ -213,7 +215,7 @@ class ModuleHttpStats : public Module
 
        virtual Version GetVersion()
        {
-               return Version("Provides statistics over HTTP via m_httpd.so", VF_VENDOR, API_VERSION);
+               return Version("Provides statistics over HTTP via m_httpd.so", VF_VENDOR);
        }
 };