]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/base.cpp
Fix null dereference caused by tracking dummy
[user/henk/code/inspircd.git] / src / base.cpp
index 97722744054f05272da4765e4fe8e84c876ac43c..59196fec1d6242fb1ca1a3f6ffad4cacd915517f 100644 (file)
@@ -136,17 +136,22 @@ void Extensible::doUnhookExtensions(const std::vector<ExtensionItem*>& toRemove)
        }
 }
 
+static struct DummyExtensionItem : LocalExtItem
+{
+       DummyExtensionItem() : LocalExtItem("", NULL) {}
+       void free(void*) {}
+} dummy;
+
 Extensible::Extensible()
 {
-       extensions[NULL] = NULL;
+       extensions[&dummy] = NULL;
 }
 
 CullResult Extensible::cull()
 {
        for(ExtensibleStore::iterator i = extensions.begin(); i != extensions.end(); ++i)
        {
-               if (i->first)
-                       i->first->free(i->second);
+               i->first->free(i->second);
        }
        extensions.clear();
        return classbase::cull();