Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-53424

Regression WinRT Networking crash on close

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.6.1, 5.7.0
    • 5.6.1, 5.7.0 Beta
    • Network: Sockets
    • None
    • WinRT MSVC2015
    • WinRT
    • eba979f6956f8d74bf5a3cb6ed0d585396b790f1 and a1dccd0708ae805b014489b5b16cc055d3001c50 in 5.6.1

    Description

      Hard crash when closing QUdpSocket or QTcpServer.

      Regression caused by Change-Id: Idc75178f7d05057b610ac7000e95486d6a52cb85

      qnativesocketengine_winrt.cpp -> void QNativeSocketEngine::close()
      hr = d->tcpSocket()->QueryInterface(IID_PPV_ARGS(&socket3));
      

      Will fail and then cause a null pointer deference few lines below with QUdpSocket.

      hr = socket3->CancelIOAsync(&action);
      

      Or with QTcpServer (tcpListener) it will trigger ASSERT since CancelIOAsync is not a supported action for StreamSocketListener.

      hr = QWinRTFunctions::await(action);
      

      See patch for possible fix by excluding this code path to QTcpSocket only.

      Attachments

        Activity

          People

            owolff Oliver Wolff
            pratik Pratik Kumar
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: