aboutsummaryrefslogtreecommitdiff
path: root/src/server/QXmppIncomingClient.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 15:17:40 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-07-20 15:17:40 +0200
commitaf70dc7b68f276c739f51b04b3da652bb5537db5 (patch)
tree76d8f22e59ad6f1815b155bf853820c1c74751be /src/server/QXmppIncomingClient.cpp
parentccb335ee65553022f70996eaffe6bd43d3de2dc0 (diff)
guard against crash
Diffstat (limited to 'src/server/QXmppIncomingClient.cpp')
-rw-r--r--src/server/QXmppIncomingClient.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/QXmppIncomingClient.cpp b/src/server/QXmppIncomingClient.cpp
index 1b22ac3c..fd6fce18 100644
--- a/src/server/QXmppIncomingClient.cpp
+++ b/src/server/QXmppIncomingClient.cpp
@@ -273,6 +273,13 @@ void QXmppIncomingClient::handleStanza(const QDomElement &nodeRecv)
QXmppSaslResponse response;
response.parse(nodeRecv);
+ if (!d->saslServer) {
+ warning("SASL response received, but no mechanism selected");
+ sendPacket(QXmppSaslFailure());
+ disconnectFromHost();
+ return;
+ }
+
QByteArray challenge;
QXmppSaslServer::Response result = d->saslServer->respond(response.value(), challenge);
if (result == QXmppSaslServer::InputNeeded) {