Browse Source

Fix crash by invalid socket deletion

Calling delete on a socket callback is not safe and this can crash
QGroundControl. Using deleteLater method from socket to perfom deletion.
QGC4.4
Otavio Pontes 8 years ago
parent
commit
a84be5e64f
  1. 4
      src/VideoStreaming/VideoReceiver.cc

4
src/VideoStreaming/VideoReceiver.cc

@ -80,7 +80,7 @@ void VideoReceiver::_connected() @@ -80,7 +80,7 @@ void VideoReceiver::_connected()
{
//-- Server showed up. Now we start the stream.
_timer.stop();
delete _socket;
_socket->deleteLater();
_socket = NULL;
_serverPresent = true;
start();
@ -91,7 +91,7 @@ void VideoReceiver::_connected() @@ -91,7 +91,7 @@ void VideoReceiver::_connected()
void VideoReceiver::_socketError(QAbstractSocket::SocketError socketError)
{
Q_UNUSED(socketError);
delete _socket;
_socket->deleteLater();
_socket = NULL;
//-- Try again in 5 seconds
_timer.start(5000);

Loading…
Cancel
Save