diff options
| author | 2014-03-02 17:04:51 +0100 | |
|---|---|---|
| committer | 2014-03-02 17:04:51 +0100 | |
| commit | ed08638c1afa2742f0ebc3006dd0f1054020f7d4 (patch) | |
| tree | bb7bfb8c42e06531f36ab5d70a9001f73bd22bfb /src/modules/m_spanningtree/treesocket1.cpp | |
| parent | m_spanningtree Don't send snotices to servers about remote servers splitting (diff) | |
m_spanningtree Do pointer comparison before deleting one of the pointers in TreeSocket::Squit()
While the previous code worked fine in practice, it was incorrect in theory
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index 7b233169d..c9729cc0f 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -212,8 +212,9 @@ void TreeSocket::Squit(TreeServer* Current, const std::string &reason) Current->Tidy(); Current->GetParent()->DelChild(Current); Current->cull(); + const bool ismyroot = (Current == MyRoot); delete Current; - if (Current == MyRoot) + if (ismyroot) { MyRoot = NULL; Close(); |
