summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2019-04-11 12:00:50 +0200
committerKarsten Heimrich <karsten.heimrich@qt.io>2019-04-15 08:23:48 +0000
commit5ac884b47ba36194e38be9b3d7d427aebdc4a451 (patch)
tree6eba60509538b239cbb6090ee9afd42ad93d51da
parent2a80df505c6af22755107403b23597874c863db1 (diff)
Fix crash after the connection was immediately dropped
If the connection was dropped immediately after write datagram due to an error, the timers and socket would be cleared and we where accessing a null pointer. Change-Id: I75c7aec9a7caed8edafb95d50465e3527a32dad6 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--src/knx/netip/qknxnetipendpointconnection.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/knx/netip/qknxnetipendpointconnection.cpp b/src/knx/netip/qknxnetipendpointconnection.cpp
index 6b256bc..03785e1 100644
--- a/src/knx/netip/qknxnetipendpointconnection.cpp
+++ b/src/knx/netip/qknxnetipendpointconnection.cpp
@@ -1232,11 +1232,14 @@ void QKnxNetIpEndpointConnection::connectToHost(const QHostAddress &address, qui
.create();
d->m_controlEndpointVersion = request.header().protocolVersion();
- qDebug() << "Sending connect request:" << request;
d->setAndEmitStateChanged(QKnxNetIpEndpointConnection::State::Connecting);
+
+ qDebug() << "Sending connect request:" << request;
d->m_udpSocket->writeDatagram(request.bytes().toByteArray(),
d->m_remoteControlEndpoint.address, d->m_remoteControlEndpoint.port);
- d->m_connectRequestTimer->start(QKnxNetIp::ConnectRequestTimeout);
+
+ if (d->m_connectRequestTimer)
+ d->m_connectRequestTimer->start(QKnxNetIp::ConnectRequestTimeout);
}
/*!