summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2009-08-19 15:09:27 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2009-08-19 15:09:27 +0000
commit01dbd2658f357b4978f6ac7494704a24548228db (patch)
tree938a5a3583b81f2a318fd581007428fd11c8f45e
parent14ec488aebeb813e618e47f8e785e1f37781fc41 (diff)
Fix a regression from fcb51634669e6ed588e42f2072c6f910e267126f ("fix uid collision on spanningtree reload") caused by access-after-free.
Thanks to transnet for the report. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11533 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_spanningtree/utils.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 9ae6d4d14..46769a6f4 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -176,8 +176,10 @@ SpanningTreeUtilities::~SpanningTreeUtilities()
sock->Close();
}
}
- delete TreeRoot;
+
+ // This avoids a collision on reload
ServerUser->uuid = TreeRoot->GetID();
+ delete TreeRoot;
delete ServerUser;
ServerInstance->BufferedSocketCull();
}