From 8bde55fbd4a0061706c49726f8608d180ae36dec Mon Sep 17 00:00:00 2001 From: brain Date: Sat, 6 Jan 2007 15:35:05 +0000 Subject: Fix crash when unloading ssl module on shutdown -- there are no port objects to set the description back to 'plaintext' on, here. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6230 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/inspircd.cpp | 4 ++++ src/modules/extra/m_ssl_gnutls.cpp | 3 ++- src/modules/extra/m_ssl_openssl.cpp | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 1509553ce..0bdffba64 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -80,8 +80,12 @@ void InspIRCd::Cleanup() int MyModCount = this->GetModuleCount(); for (unsigned int i = 0; i < stats->BoundPortCount; i++) + { /* This calls the constructor and closes the listening socket */ delete Config->openSockfd[i]; + Config->openSockfd[i] = NULL; + } + stats->BoundPortCount = 0; /* We do this more than once, so that any service providers get a * chance to be unhooked by the modules using them, but then get diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 9eec655f7..808c748cc 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -263,7 +263,8 @@ class ModuleSSLGnuTLS : public Module ServerInstance->Config->DelIOHook(listenports[i]); for (unsigned int j = 0; j < ServerInstance->stats->BoundPortCount; j++) if (ServerInstance->Config->ports[j] == listenports[i]) - ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); + if (ServerInstance->Config->openSockfd[j]) + ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); } } } diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index 7ad78e2ea..f46f04988 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -297,7 +297,8 @@ class ModuleSSLOpenSSL : public Module ServerInstance->Config->DelIOHook(listenports[i]); for (unsigned int j = 0; j < ServerInstance->stats->BoundPortCount; j++) if (ServerInstance->Config->ports[j] == listenports[i]) - ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); + if (ServerInstance->Config->openSockfd[j]) + ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); } } } -- cgit v1.2.3