Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler.
Number of rules (primarily dangerous function names) in C/C++ ruleset: 223
Examining data/qxmpp-1.2.0/examples/example_0_connected/example_0_connected.cpp
Examining data/qxmpp-1.2.0/examples/example_1_echoClient/example_1_echoClient.cpp
Examining data/qxmpp-1.2.0/examples/example_1_echoClient/example_1_echoClient.h
Examining data/qxmpp-1.2.0/examples/example_2_rosterHandling/example_2_rosterHandling.cpp
Examining data/qxmpp-1.2.0/examples/example_2_rosterHandling/example_2_rosterHandling.h
Examining data/qxmpp-1.2.0/examples/example_3_transferHandling/example_3_transferHandling.cpp
Examining data/qxmpp-1.2.0/examples/example_3_transferHandling/example_3_transferHandling.h
Examining data/qxmpp-1.2.0/examples/example_5_rpcInterface/main.cpp
Examining data/qxmpp-1.2.0/examples/example_5_rpcInterface/remoteinterface.cpp
Examining data/qxmpp-1.2.0/examples/example_5_rpcInterface/remoteinterface.h
Examining data/qxmpp-1.2.0/examples/example_6_rpcClient/main.cpp
Examining data/qxmpp-1.2.0/examples/example_6_rpcClient/rpcClient.cpp
Examining data/qxmpp-1.2.0/examples/example_6_rpcClient/rpcClient.h
Examining data/qxmpp-1.2.0/examples/example_7_archiveHandling/example_7_archiveHandling.cpp
Examining data/qxmpp-1.2.0/examples/example_7_archiveHandling/example_7_archiveHandling.h
Examining data/qxmpp-1.2.0/examples/example_8_server/example_8_server.cpp
Examining data/qxmpp-1.2.0/examples/example_9_vCard/example_9_vCard.cpp
Examining data/qxmpp-1.2.0/examples/example_9_vCard/example_9_vCard.h
Examining data/qxmpp-1.2.0/src/base/QXmppArchiveIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppArchiveIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppBindIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppBindIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryContentId.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryContentId.h
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryData.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryData.h
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryDataList.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryDataList.h
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppBitsOfBinaryIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppBookmarkSet.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppBookmarkSet.h
Examining data/qxmpp-1.2.0/src/base/QXmppByteStreamIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppByteStreamIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppCodec.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppCodec_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppConstants.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppConstants_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppDataForm.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppDataForm.h
Examining data/qxmpp-1.2.0/src/base/QXmppDiscoveryIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppDiscoveryIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppElement.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppElement.h
Examining data/qxmpp-1.2.0/src/base/QXmppEntityTimeIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppEntityTimeIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppHttpUploadIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppHttpUploadIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppIbbIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppIbbIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppJingleIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppJingleIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppLogger.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppLogger.h
Examining data/qxmpp-1.2.0/src/base/QXmppMamIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppMamIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppMessage.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppMessage.h
Examining data/qxmpp-1.2.0/src/base/QXmppMixIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppMixIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppMixItem.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppMixItem.h
Examining data/qxmpp-1.2.0/src/base/QXmppMucIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppMucIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppNonSASLAuth.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppNonSASLAuth.h
Examining data/qxmpp-1.2.0/src/base/QXmppPingIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppPingIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppPresence.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppPresence.h
Examining data/qxmpp-1.2.0/src/base/QXmppPubSubIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppPubSubIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppPubSubItem.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppPubSubItem.h
Examining data/qxmpp-1.2.0/src/base/QXmppRegisterIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppRegisterIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppResultSet.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppResultSet.h
Examining data/qxmpp-1.2.0/src/base/QXmppRosterIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppRosterIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppRpcIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppRpcIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.h
Examining data/qxmpp-1.2.0/src/base/QXmppRtpChannel.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppRtpChannel.h
Examining data/qxmpp-1.2.0/src/base/QXmppRtpPacket.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppRtpPacket.h
Examining data/qxmpp-1.2.0/src/base/QXmppSasl.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppSasl_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppSessionIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppSessionIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppSocks.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppSocks.h
Examining data/qxmpp-1.2.0/src/base/QXmppStanza.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStanza.h
Examining data/qxmpp-1.2.0/src/base/QXmppStanza_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppStartTlsPacket.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStartTlsPacket.h
Examining data/qxmpp-1.2.0/src/base/QXmppStream.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStream.h
Examining data/qxmpp-1.2.0/src/base/QXmppStreamFeatures.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStreamFeatures.h
Examining data/qxmpp-1.2.0/src/base/QXmppStreamInitiationIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStreamInitiationIq_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppStreamManagement.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStreamManagement_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppStun.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppStun.h
Examining data/qxmpp-1.2.0/src/base/QXmppStun_p.h
Examining data/qxmpp-1.2.0/src/base/QXmppUtils.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppUtils.h
Examining data/qxmpp-1.2.0/src/base/QXmppVCardIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppVCardIq.h
Examining data/qxmpp-1.2.0/src/base/QXmppVersionIq.cpp
Examining data/qxmpp-1.2.0/src/base/QXmppVersionIq.h
Examining data/qxmpp-1.2.0/src/client/QXmppArchiveManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppArchiveManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppBookmarkManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppBookmarkManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppCallManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppCallManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppCarbonManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppCarbonManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppClient.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppClient.h
Examining data/qxmpp-1.2.0/src/client/QXmppClientExtension.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppClientExtension.h
Examining data/qxmpp-1.2.0/src/client/QXmppClient_p.h
Examining data/qxmpp-1.2.0/src/client/QXmppConfiguration.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppConfiguration.h
Examining data/qxmpp-1.2.0/src/client/QXmppDiscoveryManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppDiscoveryManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppEntityTimeManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppEntityTimeManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppInternalClientExtension.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppInternalClientExtension_p.h
Examining data/qxmpp-1.2.0/src/client/QXmppInvokable.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppInvokable.h
Examining data/qxmpp-1.2.0/src/client/QXmppMamManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppMamManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppMessageReceiptManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppMessageReceiptManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppMucManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppMucManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppOutgoingClient.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppOutgoingClient.h
Examining data/qxmpp-1.2.0/src/client/QXmppRegistrationManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppRegistrationManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppRemoteMethod.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppRemoteMethod.h
Examining data/qxmpp-1.2.0/src/client/QXmppRosterManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppRosterManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppRpcManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppRpcManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppTlsManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppTlsManager_p.h
Examining data/qxmpp-1.2.0/src/client/QXmppTransferManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppTransferManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppTransferManager_p.h
Examining data/qxmpp-1.2.0/src/client/QXmppUploadRequestManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppUploadRequestManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppVCardManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppVCardManager.h
Examining data/qxmpp-1.2.0/src/client/QXmppVersionManager.cpp
Examining data/qxmpp-1.2.0/src/client/QXmppVersionManager.h
Examining data/qxmpp-1.2.0/src/server/QXmppDialback.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppDialback.h
Examining data/qxmpp-1.2.0/src/server/QXmppIncomingClient.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppIncomingClient.h
Examining data/qxmpp-1.2.0/src/server/QXmppIncomingServer.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppIncomingServer.h
Examining data/qxmpp-1.2.0/src/server/QXmppOutgoingServer.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppOutgoingServer.h
Examining data/qxmpp-1.2.0/src/server/QXmppPasswordChecker.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppPasswordChecker.h
Examining data/qxmpp-1.2.0/src/server/QXmppServer.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppServer.h
Examining data/qxmpp-1.2.0/src/server/QXmppServerExtension.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppServerExtension.h
Examining data/qxmpp-1.2.0/src/server/QXmppServerPlugin.cpp
Examining data/qxmpp-1.2.0/src/server/QXmppServerPlugin.h
Examining data/qxmpp-1.2.0/tests/qxmpparchiveiq/tst_qxmpparchiveiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppbindiq/tst_qxmppbindiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppbitsofbinarycontentid/tst_qxmppbitsofbinarycontentid.cpp
Examining data/qxmpp-1.2.0/tests/qxmppbitsofbinaryiq/tst_qxmppbitsofbinaryiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppcallmanager/tst_qxmppcallmanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmppcarbonmanager/tst_qxmppcarbonmanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmppclient/tst_qxmppclient.cpp
Examining data/qxmpp-1.2.0/tests/qxmppcodec/tst_qxmppcodec.cpp
Examining data/qxmpp-1.2.0/tests/qxmppdataform/tst_qxmppdataform.cpp
Examining data/qxmpp-1.2.0/tests/qxmppdiscoveryiq/tst_qxmppdiscoveryiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppentitytimeiq/tst_qxmppentitytimeiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmpphttpuploadiq/tst_qxmpphttpuploadiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppiceconnection/tst_qxmppiceconnection.cpp
Examining data/qxmpp-1.2.0/tests/qxmppiq/tst_qxmppiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppjingleiq/tst_qxmppjingleiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppmammanager/tst_qxmppmammanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmppmessage/tst_qxmppmessage.cpp
Examining data/qxmpp-1.2.0/tests/qxmppmessagereceiptmanager/tst_qxmppmessagereceiptmanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmppmixiq/tst_qxmppmixiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppmixitem/tst_qxmppmixitem.cpp
Examining data/qxmpp-1.2.0/tests/qxmppnonsaslauthiq/tst_qxmppnonsaslauthiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmpppresence/tst_qxmpppresence.cpp
Examining data/qxmpp-1.2.0/tests/qxmpppubsubiq/tst_qxmpppubsubiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppregisteriq/tst_qxmppregisteriq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppregistrationmanager/tst_qxmppregistrationmanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmppresultset/tst_qxmppresultset.cpp
Examining data/qxmpp-1.2.0/tests/qxmpprosteriq/tst_qxmpprosteriq.cpp
Examining data/qxmpp-1.2.0/tests/qxmpprpciq/tst_qxmpprpciq.cpp
Examining data/qxmpp-1.2.0/tests/qxmpprtcppacket/tst_qxmpprtcppacket.cpp
Examining data/qxmpp-1.2.0/tests/qxmpprtppacket/tst_qxmpprtppacket.cpp
Examining data/qxmpp-1.2.0/tests/qxmppsasl/tst_qxmppsasl.cpp
Examining data/qxmpp-1.2.0/tests/qxmppserver/tst_qxmppserver.cpp
Examining data/qxmpp-1.2.0/tests/qxmppsessioniq/tst_qxmppsessioniq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppsocks/tst_qxmppsocks.cpp
Examining data/qxmpp-1.2.0/tests/qxmppstanza/tst_qxmppstanza.cpp
Examining data/qxmpp-1.2.0/tests/qxmppstarttlspacket/tst_qxmppstarttlspacket.cpp
Examining data/qxmpp-1.2.0/tests/qxmppstreamfeatures/tst_qxmppstreamfeatures.cpp
Examining data/qxmpp-1.2.0/tests/qxmppstreaminitiationiq/tst_qxmppstreaminitiationiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppstunmessage/tst_qxmppstunmessage.cpp
Examining data/qxmpp-1.2.0/tests/qxmpptransfermanager/tst_qxmpptransfermanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmppuploadrequestmanager/tst_qxmppuploadrequestmanager.cpp
Examining data/qxmpp-1.2.0/tests/qxmpputils/tst_qxmpputils.cpp
Examining data/qxmpp-1.2.0/tests/qxmppvcardiq/tst_qxmppvcardiq.cpp
Examining data/qxmpp-1.2.0/tests/qxmppversioniq/tst_qxmppversioniq.cpp
Examining data/qxmpp-1.2.0/tests/util.h

FINAL RESULTS:

data/qxmpp-1.2.0/examples/example_3_transferHandling/example_3_transferHandling.cpp:87:13:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    buffer->open(QIODevice::WriteOnly);
data/qxmpp-1.2.0/examples/example_9_vCard/example_9_vCard.cpp:86:14:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if (file.open(QIODevice::ReadWrite)) {
data/qxmpp-1.2.0/examples/example_9_vCard/example_9_vCard.cpp:97:12:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    buffer.open(QIODevice::ReadOnly);
data/qxmpp-1.2.0/src/base/QXmppCodec.cpp:587:13:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
            memcpy(output, ycbcr_buffer[i].data, length);
data/qxmpp-1.2.0/src/base/QXmppCodec.cpp:1132:21:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
                    memcpy(output, input, img->d_w / div);
data/qxmpp-1.2.0/src/base/QXmppLogger.cpp:194:25:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
            d->logFile->open(QIODevice::WriteOnly | QIODevice::Append);
data/qxmpp-1.2.0/src/base/QXmppMixItem.cpp:156:12:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    buffer.open(QIODevice::ReadWrite);
data/qxmpp-1.2.0/src/base/QXmppRtpChannel.cpp:464:5:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    memcpy(data, d->incomingBuffer.constData(), readSize);
data/qxmpp-1.2.0/src/base/QXmppRtpChannel.cpp:482:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(data, chunk.constData() + headOffset, maxSize);
data/qxmpp-1.2.0/src/base/QXmppRtpChannel.cpp:521:5:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    open(QIODevice::ReadWrite | QIODevice::Unbuffered);
data/qxmpp-1.2.0/src/client/QXmppTransferManager.cpp:264:20:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
        if (!file->open(QIODevice::WriteOnly)) {
data/qxmpp-1.2.0/src/client/QXmppTransferManager.cpp:1181:18:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if (!device->open(QIODevice::ReadOnly)) {
data/qxmpp-1.2.0/src/server/QXmppServer.cpp:463:21:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    } else if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
data/qxmpp-1.2.0/src/server/QXmppServer.cpp:499:21:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    } else if (file.open(QIODevice::ReadOnly)) {
data/qxmpp-1.2.0/tests/qxmppregistrationmanager/tst_qxmppregistrationmanager.cpp:36:12:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    buffer.open(QIODevice::ReadWrite);
data/qxmpp-1.2.0/tests/qxmppregistrationmanager/tst_qxmppregistrationmanager.cpp:519:16:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
        buffer.open(QIODevice::ReadWrite);
data/qxmpp-1.2.0/tests/qxmpprpciq/tst_qxmpprpciq.cpp:33:12:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    buffer.open(QIODevice::ReadWrite);
data/qxmpp-1.2.0/tests/qxmpptransfermanager/tst_qxmpptransfermanager.cpp:58:20:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    receiverBuffer.open(QIODevice::WriteOnly);
data/qxmpp-1.2.0/tests/qxmpptransfermanager/tst_qxmpptransfermanager.cpp:167:30:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
        QVERIFY(expectedFile.open(QIODevice::ReadOnly));
data/qxmpp-1.2.0/tests/qxmpputils/tst_qxmpputils.cpp:94:19:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    QCOMPARE(file.open(QIODevice::ReadOnly), true);
data/qxmpp-1.2.0/tests/util.h:44:12:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    buffer.open(QIODevice::ReadWrite);
data/qxmpp-1.2.0/examples/example_9_vCard/example_9_vCard.cpp:99:32:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    QImage image = imageReader.read();
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:60:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool read(QDataStream &stream);
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:76:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool read(QDataStream &stream);
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:89:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool read(QDataStream &stream);
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:144:12:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    return read(stream);
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:159:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool QXmppRtcpPacket::read(QDataStream &stream)
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:210:58:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (d->type == SenderReport && !d->senderInfo.d->read(s))
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:214:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (!receiverReport.d->read(s))
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:221:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (!desc.d->read(s))
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:441:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool QXmppRtcpReceiverReportPrivate::read(QDataStream &stream)
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:530:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool QXmppRtcpSenderInfoPrivate::read(QDataStream &stream)
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.cpp:602:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
bool QXmppRtcpSourceDescriptionPrivate::read(QDataStream &stream)
data/qxmpp-1.2.0/src/base/QXmppRtcpPacket.h:60:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    bool read(QDataStream &stream);
data/qxmpp-1.2.0/src/base/QXmppSocks.cpp:164:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        QByteArray buffer = read(3);
data/qxmpp-1.2.0/src/base/QXmppSocks.cpp:289:37:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        QByteArray buffer = socket->read(3);
data/qxmpp-1.2.0/src/client/QXmppTransferManager.cpp:640:34:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    qint64 length = d->iodevice->read(buffer, d->blockSize);
data/qxmpp-1.2.0/src/client/QXmppTransferManager.cpp:985:53:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        const QByteArray buffer = job->d->iodevice->read(job->d->blockSize);
data/qxmpp-1.2.0/src/client/QXmppTransferManager.cpp:1192:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            buffer = device->read(16384);

ANALYSIS SUMMARY:

Hits = 39
Lines analyzed = 52911 in approximately 1.14 seconds (46436 lines/second)
Physical Source Lines of Code (SLOC) = 33155
Hits@level = [0]   2 [1]  18 [2]  21 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  41 [1+]  39 [2+]  21 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 1.23662 [1+] 1.17629 [2+] 0.633389 [3+]   0 [4+]   0 [5+]   0
Dot directories skipped = 1 (--followdotdir overrides)
Minimum risk level = 1
Not every hit is necessarily a security vulnerability.
There may be other security vulnerabilities; review your code!
See 'Secure Programming HOWTO'
(https://dwheeler.com/secure-programs) for more information.