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/gloox-1.0.24/src/privatexml.cpp Examining data/gloox-1.0.24/src/md5.h Examining data/gloox-1.0.24/src/lastactivityhandler.h Examining data/gloox-1.0.24/src/jinglepluginfactory.cpp Examining data/gloox-1.0.24/src/compressiondatahandler.h Examining data/gloox-1.0.24/src/jid.h Examining data/gloox-1.0.24/src/chatstate.h Examining data/gloox-1.0.24/src/jinglesessionhandler.h Examining data/gloox-1.0.24/src/siprofileft.h Examining data/gloox-1.0.24/src/disco.cpp Examining data/gloox-1.0.24/src/util.cpp Examining data/gloox-1.0.24/src/iodata.cpp Examining data/gloox-1.0.24/src/registration.h Examining data/gloox-1.0.24/src/messagehandler.h Examining data/gloox-1.0.24/src/client.cpp Examining data/gloox-1.0.24/src/client.h Examining data/gloox-1.0.24/src/dataformreported.h Examining data/gloox-1.0.24/src/connectiontcpbase.cpp Examining data/gloox-1.0.24/src/error.cpp Examining data/gloox-1.0.24/src/subscription.cpp Examining data/gloox-1.0.24/src/linklocalmanager.h Examining data/gloox-1.0.24/src/clientbase.h Examining data/gloox-1.0.24/src/messageevent.h Examining data/gloox-1.0.24/src/taghandler.h Examining data/gloox-1.0.24/src/presence.cpp Examining data/gloox-1.0.24/src/privacylisthandler.h Examining data/gloox-1.0.24/src/bytestreamdatahandler.h Examining data/gloox-1.0.24/src/eventdispatcher.cpp Examining data/gloox-1.0.24/src/eventdispatcher.h Examining data/gloox-1.0.24/src/gloox.h Examining data/gloox-1.0.24/src/clientbase.cpp Examining data/gloox-1.0.24/src/adhoc.cpp Examining data/gloox-1.0.24/src/featureneg.h Examining data/gloox-1.0.24/src/adhochandler.h Examining data/gloox-1.0.24/src/rosterlistener.h Examining data/gloox-1.0.24/src/mutex.h Examining data/gloox-1.0.24/src/linklocalclient.h Examining data/gloox-1.0.24/src/socks5bytestreamserver.h Examining data/gloox-1.0.24/src/disco.h Examining data/gloox-1.0.24/src/messagefilter.h Examining data/gloox-1.0.24/src/component.cpp Examining data/gloox-1.0.24/src/dataformfieldcontainer.h Examining data/gloox-1.0.24/src/mucroomhandler.h Examining data/gloox-1.0.24/src/vcardmanager.h Examining data/gloox-1.0.24/src/siprofilehandler.h Examining data/gloox-1.0.24/src/searchhandler.h Examining data/gloox-1.0.24/src/delayeddelivery.h Examining data/gloox-1.0.24/src/rosteritem.h Examining data/gloox-1.0.24/src/mucinvitationhandler.cpp Examining data/gloox-1.0.24/src/iodata.h Examining data/gloox-1.0.24/src/nickname.cpp Examining data/gloox-1.0.24/src/tlsbase.h Examining data/gloox-1.0.24/src/inbandbytestream.h Examining data/gloox-1.0.24/src/sihandler.h Examining data/gloox-1.0.24/src/prep.cpp Examining data/gloox-1.0.24/src/chatstatehandler.h Examining data/gloox-1.0.24/src/connectiontlsserver.h Examining data/gloox-1.0.24/src/tlsgnutlsserveranon.h Examining data/gloox-1.0.24/src/util.h Examining data/gloox-1.0.24/src/dataformitem.cpp Examining data/gloox-1.0.24/src/glooxversion.h Examining data/gloox-1.0.24/src/tests/tag/tag_test.cpp Examining data/gloox-1.0.24/src/tests/tag/tag_perf.cpp Examining data/gloox-1.0.24/src/tests/searchquery/searchquery_test.cpp Examining data/gloox-1.0.24/src/tests/presence/presence_test.cpp Examining data/gloox-1.0.24/src/tests/connectiontcpserver/connectiontcpserver_test.cpp Examining data/gloox-1.0.24/src/tests/lastactivityquery/lastactivityquery_test.cpp Examining data/gloox-1.0.24/src/tests/adhoccommand/adhoccommand_test.cpp Examining data/gloox-1.0.24/src/tests/tlsgnutls/tlsgnutls_test.cpp Examining data/gloox-1.0.24/src/tests/oob/oob_test.cpp Examining data/gloox-1.0.24/src/tests/iodata/iodata_test.cpp Examining data/gloox-1.0.24/src/tests/rostermanager/rostermanager_test.cpp Examining data/gloox-1.0.24/src/tests/pubsubmanager/pubsubmanager_test.cpp Examining data/gloox-1.0.24/src/tests/featureneg/featureneg_test.cpp Examining data/gloox-1.0.24/src/tests/pubsubmanagerpubsub/pubsubmanagerpubsub_test.cpp Examining data/gloox-1.0.24/src/tests/jinglesessionmanager/jinglesessionmanager_test.cpp Examining data/gloox-1.0.24/src/tests/md5/md5_test.cpp Examining data/gloox-1.0.24/src/tests/nickname/nickname_test.cpp Examining data/gloox-1.0.24/src/tests/parser/parser_test.cpp Examining data/gloox-1.0.24/src/tests/inbandbytestreamibb/inbandbytestreamibb_test.cpp Examining data/gloox-1.0.24/src/tests/subscription/subscription_test.cpp Examining data/gloox-1.0.24/src/tests/jid/jid_test.cpp Examining data/gloox-1.0.24/src/tests/jid/jid_perf.cpp Examining data/gloox-1.0.24/src/tests/adhoccommandnote/adhoccommandnote_test.cpp Examining data/gloox-1.0.24/src/tests/nonsaslauthquery/nonsaslauthquery_test.cpp Examining data/gloox-1.0.24/src/tests/zlib/zlib_test.cpp Examining data/gloox-1.0.24/src/tests/zlib/zlib_perf.cpp Examining data/gloox-1.0.24/src/tests/registrationquery/registrationquery_test.cpp Examining data/gloox-1.0.24/src/tests/stanzaextensionfactory/stanzaextensionfactory_perf.cpp Examining data/gloox-1.0.24/src/tests/stanzaextensionfactory/stanzaextensionfactory_test.cpp Examining data/gloox-1.0.24/src/tests/error/error_test.cpp Examining data/gloox-1.0.24/src/tests/rostermanagerquery/rostermanagerquery_test.cpp Examining data/gloox-1.0.24/src/tests/carbons/carbons_test.cpp Examining data/gloox-1.0.24/src/tests/nonsaslauth/nonsaslauth_test.cpp Examining data/gloox-1.0.24/src/tests/jinglesessionjingle/jinglesessionjingle_test.cpp Examining data/gloox-1.0.24/src/tests/amprule/amprule_test.cpp Examining data/gloox-1.0.24/src/tests/lastactivity/lastactivity_test.cpp Examining data/gloox-1.0.24/src/tests/mucroommucuser/mucroommucuser_test.cpp Examining data/gloox-1.0.24/src/tests/iq/iq_test.cpp Examining data/gloox-1.0.24/src/tests/privatexml/privatexml_test.cpp Examining data/gloox-1.0.24/src/tests/mucroommuc/mucroommuc_test.cpp Examining data/gloox-1.0.24/src/tests/chatstatefilter/chatstatefilter_test.cpp Examining data/gloox-1.0.24/src/tests/dataformreported/dataformreported_test.cpp Examining data/gloox-1.0.24/src/tests/prep/prep_test.cpp Examining data/gloox-1.0.24/src/tests/dataform/dataform_test.cpp Examining data/gloox-1.0.24/src/tests/gpgencrypted/gpgencrypted_test.cpp Examining data/gloox-1.0.24/src/tests/simanagersi/simanagersi_test.cpp Examining data/gloox-1.0.24/src/tests/jingleiceudp/jingleiceudp_test.cpp Examining data/gloox-1.0.24/src/tests/shim/shim_test.cpp Examining data/gloox-1.0.24/src/tests/messageeventfilter/messageeventfilter_test.cpp Examining data/gloox-1.0.24/src/tests/flexofflineoffline/flexofflineoffline_test.cpp Examining data/gloox-1.0.24/src/tests/vcard/vcard_test.cpp Examining data/gloox-1.0.24/src/tests/pubsubevent/pubsubevent_test.cpp Examining data/gloox-1.0.24/src/tests/jinglesession/jinglesession_test.cpp Examining data/gloox-1.0.24/src/tests/message/message_test.cpp Examining data/gloox-1.0.24/src/tests/discoitems/discoitems_test.cpp Examining data/gloox-1.0.24/src/tests/receipt/receipt_test.cpp Examining data/gloox-1.0.24/src/tests/delayeddelivery/delayeddelivery_test.cpp Examining data/gloox-1.0.24/src/tests/dataformitem/dataformitem_test.cpp Examining data/gloox-1.0.24/src/tests/mucroommucowner/mucroommucowner_test.cpp Examining data/gloox-1.0.24/src/tests/privacymanagerquery/privacymanagerquery_test.cpp Examining data/gloox-1.0.24/src/tests/client/client_test.cpp Examining data/gloox-1.0.24/src/tests/discoinfo/discoinfo_test.cpp Examining data/gloox-1.0.24/src/tests/clientbase/clientbase_test.cpp Examining data/gloox-1.0.24/src/tests/connectionbosh/connectionbosh_test.cpp Examining data/gloox-1.0.24/src/tests/mucroommucadmin/mucroommucadmin_test.cpp Examining data/gloox-1.0.24/src/tests/capabilities/capabilities_test.cpp Examining data/gloox-1.0.24/src/tests/vcardupdate/vcardupdate_test.cpp Examining data/gloox-1.0.24/src/tests/inbandbytestream/inbandbytestream_test.cpp Examining data/gloox-1.0.24/src/tests/util/util_test.cpp Examining data/gloox-1.0.24/src/tests/base64/base64_test.cpp Examining data/gloox-1.0.24/src/tests/privacymanager/privacymanager_test.cpp Examining data/gloox-1.0.24/src/tests/xpath/xpath_test.cpp Examining data/gloox-1.0.24/src/tests/registration/registration_test.cpp Examining data/gloox-1.0.24/src/tests/amp/amp_test.cpp Examining data/gloox-1.0.24/src/tests/forward/forward_test.cpp Examining data/gloox-1.0.24/src/tests/flexoffline/flexoffline_test.cpp Examining data/gloox-1.0.24/src/tests/uniquemucroomunique/uniquemucroomunique_test.cpp Examining data/gloox-1.0.24/src/tests/gpgsigned/gpgsigned_test.cpp Examining data/gloox-1.0.24/src/tests/sha/sha_test.cpp Examining data/gloox-1.0.24/src/tests/disco/disco_test.cpp Examining data/gloox-1.0.24/src/tests/adhoc/adhoc_test.cpp Examining data/gloox-1.0.24/src/tests/search/search_test.cpp Examining data/gloox-1.0.24/src/tests/dataformfield/dataformfield_test.cpp Examining data/gloox-1.0.24/src/tests/simanager/simanager_test.cpp Examining data/gloox-1.0.24/src/connectionlistener.h Examining data/gloox-1.0.24/src/dataformfield.h Examining data/gloox-1.0.24/src/compressiondefault.h Examining data/gloox-1.0.24/src/tlsgnutlsbase.cpp Examining data/gloox-1.0.24/src/instantmucroom.h Examining data/gloox-1.0.24/src/xhtmlim.cpp Examining data/gloox-1.0.24/src/featureneg.cpp Examining data/gloox-1.0.24/src/amp.cpp Examining data/gloox-1.0.24/src/annotations.cpp Examining data/gloox-1.0.24/src/mucroom.h Examining data/gloox-1.0.24/src/vcard.cpp Examining data/gloox-1.0.24/src/error.h Examining data/gloox-1.0.24/src/instantmucroom.cpp Examining data/gloox-1.0.24/src/attention.h Examining data/gloox-1.0.24/src/adhocplugin.h Examining data/gloox-1.0.24/src/gpgsigned.cpp Examining data/gloox-1.0.24/src/siprofilefthandler.h Examining data/gloox-1.0.24/src/jingleiceudp.h Examining data/gloox-1.0.24/src/annotationshandler.h Examining data/gloox-1.0.24/src/sha.cpp Examining data/gloox-1.0.24/src/subscription.h Examining data/gloox-1.0.24/src/adhoccommandprovider.h Examining data/gloox-1.0.24/src/jinglecontent.cpp Examining data/gloox-1.0.24/src/tlsgnutlsclient.cpp Examining data/gloox-1.0.24/src/macros.h Examining data/gloox-1.0.24/src/forward.h Examining data/gloox-1.0.24/src/disconodehandler.h Examining data/gloox-1.0.24/src/iq.h Examining data/gloox-1.0.24/src/pubsubmanager.h Examining data/gloox-1.0.24/src/tlsgnutlsclient.h Examining data/gloox-1.0.24/src/receipt.h Examining data/gloox-1.0.24/src/logsink.h Examining data/gloox-1.0.24/src/tlsopensslbase.h Examining data/gloox-1.0.24/src/rosteritem.cpp Examining data/gloox-1.0.24/src/mucmessagesession.h Examining data/gloox-1.0.24/src/pubsubevent.h Examining data/gloox-1.0.24/src/atomicrefcount.h Examining data/gloox-1.0.24/src/jingleplugin.h Examining data/gloox-1.0.24/src/eventhandler.h Examining data/gloox-1.0.24/src/connectiontcpserver.h Examining data/gloox-1.0.24/src/messageeventfilter.h Examining data/gloox-1.0.24/src/simanager.cpp Examining data/gloox-1.0.24/src/dns.cpp Examining data/gloox-1.0.24/src/dataformfield.cpp Examining data/gloox-1.0.24/src/tlsgnutlsbase.h Examining data/gloox-1.0.24/src/dns.h Examining data/gloox-1.0.24/src/rostermanager.h Examining data/gloox-1.0.24/src/tlsopensslserver.h Examining data/gloox-1.0.24/src/dataformitem.h Examining data/gloox-1.0.24/src/nickname.h Examining data/gloox-1.0.24/src/compressiondefault.cpp Examining data/gloox-1.0.24/src/linklocalhandler.h Examining data/gloox-1.0.24/src/jinglesessionmanager.h Examining data/gloox-1.0.24/src/mucroom.cpp Examining data/gloox-1.0.24/src/tlsdefault.cpp Examining data/gloox-1.0.24/src/message.cpp Examining data/gloox-1.0.24/src/annotations.h Examining data/gloox-1.0.24/src/pubsubmanager.cpp Examining data/gloox-1.0.24/src/tlsschannel.cpp Examining data/gloox-1.0.24/src/dataform.cpp Examining data/gloox-1.0.24/src/parser.cpp Examining data/gloox-1.0.24/src/config.h Examining data/gloox-1.0.24/src/bookmarkstorage.h Examining data/gloox-1.0.24/src/tlsopensslbase.cpp Examining data/gloox-1.0.24/src/gpgsigned.h Examining data/gloox-1.0.24/src/connectionsocks5proxy.h Examining data/gloox-1.0.24/src/tlsgnutlsclientanon.h Examining data/gloox-1.0.24/src/dataformfieldcontainer.cpp Examining data/gloox-1.0.24/src/socks5bytestream.h Examining data/gloox-1.0.24/src/shim.h Examining data/gloox-1.0.24/src/vcardhandler.h Examining data/gloox-1.0.24/src/tag.h Examining data/gloox-1.0.24/src/iqhandler.h Examining data/gloox-1.0.24/src/jinglecontent.h Examining data/gloox-1.0.24/src/jinglepluginfactory.h Examining data/gloox-1.0.24/src/inbandbytestream.cpp Examining data/gloox-1.0.24/src/tag.cpp Examining data/gloox-1.0.24/src/amp.h Examining data/gloox-1.0.24/src/mutex.cpp Examining data/gloox-1.0.24/src/carbons.cpp Examining data/gloox-1.0.24/src/bookmarkstorage.cpp Examining data/gloox-1.0.24/src/messageeventfilter.cpp Examining data/gloox-1.0.24/src/forward.cpp Examining data/gloox-1.0.24/src/messageevent.cpp Examining data/gloox-1.0.24/src/messagefilter.cpp Examining data/gloox-1.0.24/src/search.cpp Examining data/gloox-1.0.24/src/chatstatefilter.cpp Examining data/gloox-1.0.24/src/pubsubresulthandler.h Examining data/gloox-1.0.24/src/component.h Examining data/gloox-1.0.24/src/vcardupdate.h Examining data/gloox-1.0.24/src/vcard.h Examining data/gloox-1.0.24/src/presence.h Examining data/gloox-1.0.24/src/tlsopensslclient.cpp Examining data/gloox-1.0.24/src/mucroomconfighandler.h Examining data/gloox-1.0.24/src/chatstatefilter.h Examining data/gloox-1.0.24/src/connectionhttpproxy.cpp Examining data/gloox-1.0.24/src/compressionbase.h Examining data/gloox-1.0.24/src/connectionsocks5proxy.cpp Examining data/gloox-1.0.24/src/tlsopensslclient.h Examining data/gloox-1.0.24/src/jinglesession.h Examining data/gloox-1.0.24/src/bytestreamhandler.h Examining data/gloox-1.0.24/src/base64.h Examining data/gloox-1.0.24/src/nonsaslauth.cpp Examining data/gloox-1.0.24/src/bookmarkhandler.h Examining data/gloox-1.0.24/src/pubsubevent.cpp Examining data/gloox-1.0.24/src/linklocalclient.cpp Examining data/gloox-1.0.24/src/chatstate.cpp Examining data/gloox-1.0.24/src/compressionzlib.cpp Examining data/gloox-1.0.24/src/event.h Examining data/gloox-1.0.24/src/presencehandler.h Examining data/gloox-1.0.24/src/connectiontlsserver.cpp Examining data/gloox-1.0.24/src/connectionbosh.cpp Examining data/gloox-1.0.24/src/connectionbase.h Examining data/gloox-1.0.24/src/jinglefiletransfer.h Examining data/gloox-1.0.24/src/discohandler.h Examining data/gloox-1.0.24/src/mutexguard.h Examining data/gloox-1.0.24/src/message.h Examining data/gloox-1.0.24/src/iq.cpp Examining data/gloox-1.0.24/src/lastactivity.h Examining data/gloox-1.0.24/src/delayeddelivery.cpp Examining data/gloox-1.0.24/src/stanzaextensionfactory.cpp Examining data/gloox-1.0.24/src/stanzaextensionfactory.h Examining data/gloox-1.0.24/src/rostermanager.cpp Examining data/gloox-1.0.24/src/connectionbosh.h Examining data/gloox-1.0.24/src/softwareversion.cpp Examining data/gloox-1.0.24/src/statisticshandler.h Examining data/gloox-1.0.24/src/connectiontls.h Examining data/gloox-1.0.24/src/registrationhandler.h Examining data/gloox-1.0.24/src/uniquemucroom.h Examining data/gloox-1.0.24/src/mucinvitationhandler.h Examining data/gloox-1.0.24/src/adhoc.h Examining data/gloox-1.0.24/src/tlsdefault.h Examining data/gloox-1.0.24/src/tlsopensslserver.cpp Examining data/gloox-1.0.24/src/stanzaextension.h Examining data/gloox-1.0.24/src/stanza.cpp Examining data/gloox-1.0.24/src/connectiondatahandler.h Examining data/gloox-1.0.24/src/socks5bytestream.cpp Examining data/gloox-1.0.24/src/mucmessagesession.cpp Examining data/gloox-1.0.24/src/simanager.h Examining data/gloox-1.0.24/src/jinglefiletransfer.cpp Examining data/gloox-1.0.24/src/connectiontcpclient.cpp Examining data/gloox-1.0.24/src/capabilities.cpp Examining data/gloox-1.0.24/src/privacyitem.cpp Examining data/gloox-1.0.24/src/privatexml.h Examining data/gloox-1.0.24/src/receipt.cpp Examining data/gloox-1.0.24/src/capabilities.h Examining data/gloox-1.0.24/src/connectiontls.cpp Examining data/gloox-1.0.24/src/carbons.h Examining data/gloox-1.0.24/src/jinglesessionmanager.cpp Examining data/gloox-1.0.24/src/jid.cpp Examining data/gloox-1.0.24/src/pubsub.h Examining data/gloox-1.0.24/src/privacymanager.h Examining data/gloox-1.0.24/src/pubsubitem.cpp Examining data/gloox-1.0.24/src/tlsgnutlsclientanon.cpp Examining data/gloox-1.0.24/src/subscriptionhandler.h Examining data/gloox-1.0.24/src/attention.cpp Examining data/gloox-1.0.24/src/rosteritemdata.h Examining data/gloox-1.0.24/src/loghandler.h Examining data/gloox-1.0.24/src/sha.h Examining data/gloox-1.0.24/src/connectionhandler.h Examining data/gloox-1.0.24/src/tlsgnutlsserveranon.cpp Examining data/gloox-1.0.24/src/bytestream.h Examining data/gloox-1.0.24/src/siprofileft.cpp Examining data/gloox-1.0.24/src/prep.h Examining data/gloox-1.0.24/src/nonsaslauth.h Examining data/gloox-1.0.24/src/lastactivity.cpp Examining data/gloox-1.0.24/src/oob.h Examining data/gloox-1.0.24/src/privacyitem.h Examining data/gloox-1.0.24/src/atomicrefcount.cpp Examining data/gloox-1.0.24/src/jinglesession.cpp Examining data/gloox-1.0.24/src/pubsubitem.h Examining data/gloox-1.0.24/src/oob.cpp Examining data/gloox-1.0.24/src/socks5bytestreammanager.h Examining data/gloox-1.0.24/src/softwareversion.h Examining data/gloox-1.0.24/src/tlsschannel.h Examining data/gloox-1.0.24/src/gpgencrypted.cpp Examining data/gloox-1.0.24/src/xhtmlim.h Examining data/gloox-1.0.24/src/examples/bosh_example.cpp Examining data/gloox-1.0.24/src/examples/linklocal_example.cpp Examining data/gloox-1.0.24/src/examples/muc_example.cpp Examining data/gloox-1.0.24/src/examples/e2ee_server.cpp Examining data/gloox-1.0.24/src/examples/disco_example.cpp Examining data/gloox-1.0.24/src/examples/ft_recv.cpp Examining data/gloox-1.0.24/src/examples/reset_example.cpp Examining data/gloox-1.0.24/src/examples/ft_send.cpp Examining data/gloox-1.0.24/src/examples/reconnect_example.cpp Examining data/gloox-1.0.24/src/examples/e2ee_client.cpp Examining data/gloox-1.0.24/src/examples/message_example.cpp Examining data/gloox-1.0.24/src/examples/adhoc_example.cpp Examining data/gloox-1.0.24/src/examples/flexoff_example.cpp Examining data/gloox-1.0.24/src/examples/privatexml_example.cpp Examining data/gloox-1.0.24/src/examples/bookmarkstorage_example.cpp Examining data/gloox-1.0.24/src/examples/component_example.cpp Examining data/gloox-1.0.24/src/examples/annotations_example.cpp Examining data/gloox-1.0.24/src/examples/pubsub_example.cpp Examining data/gloox-1.0.24/src/examples/vcard_example.cpp Examining data/gloox-1.0.24/src/examples/register_example.cpp Examining data/gloox-1.0.24/src/examples/privacylist_example.cpp Examining data/gloox-1.0.24/src/examples/roster_example.cpp Examining data/gloox-1.0.24/src/socks5bytestreamserver.cpp Examining data/gloox-1.0.24/src/uniquemucroom.cpp Examining data/gloox-1.0.24/src/connectiontcpclient.h Examining data/gloox-1.0.24/src/flexoff.h Examining data/gloox-1.0.24/src/dataformreported.cpp Examining data/gloox-1.0.24/src/parser.h Examining data/gloox-1.0.24/src/connectiontcpserver.cpp Examining data/gloox-1.0.24/src/flexoff.cpp Examining data/gloox-1.0.24/src/dataform.h Examining data/gloox-1.0.24/src/messageeventhandler.h Examining data/gloox-1.0.24/src/registration.cpp Examining data/gloox-1.0.24/src/messagesessionhandler.h Examining data/gloox-1.0.24/src/compressionzlib.h Examining data/gloox-1.0.24/src/connectiontcpbase.h Examining data/gloox-1.0.24/src/connectionhttpproxy.h Examining data/gloox-1.0.24/src/vcardupdate.cpp Examining data/gloox-1.0.24/src/jingleiceudp.cpp Examining data/gloox-1.0.24/src/resource.h Examining data/gloox-1.0.24/src/search.h Examining data/gloox-1.0.24/src/socks5bytestreammanager.cpp Examining data/gloox-1.0.24/src/base64.cpp Examining data/gloox-1.0.24/src/gloox.cpp Examining data/gloox-1.0.24/src/messagesession.h Examining data/gloox-1.0.24/src/linklocal.h Examining data/gloox-1.0.24/src/vcardmanager.cpp Examining data/gloox-1.0.24/src/logsink.cpp Examining data/gloox-1.0.24/src/stanza.h Examining data/gloox-1.0.24/src/flexoffhandler.h Examining data/gloox-1.0.24/src/linklocalmanager.cpp Examining data/gloox-1.0.24/src/privatexmlhandler.h Examining data/gloox-1.0.24/src/messagesession.cpp Examining data/gloox-1.0.24/src/shim.cpp Examining data/gloox-1.0.24/src/tlshandler.h Examining data/gloox-1.0.24/src/md5.cpp Examining data/gloox-1.0.24/src/gpgencrypted.h Examining data/gloox-1.0.24/src/privacymanager.cpp FINAL RESULTS: data/gloox-1.0.24/src/clientbase.cpp:1174:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf( r, "%s%08x", m_uniqueBaseId.c_str(), m_nextId.increment() ); data/gloox-1.0.24/src/clientbase.cpp:132:5: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand( static_cast<unsigned int>( time( 0 ) ) ); data/gloox-1.0.24/src/mutex.cpp:61:7: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. InitializeCriticalSection( &m_cs ); data/gloox-1.0.24/src/mutex.cpp:85:7: [3] (misc) EnterCriticalSection: On some versions of Windows, exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. EnterCriticalSection( &m_cs ); data/gloox-1.0.24/src/tests/tag/tag_perf.cpp:70:3: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand( time( 0 ) ); data/gloox-1.0.24/src/tests/zlib/zlib_perf.cpp:70:3: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand( time(NULL) ); data/gloox-1.0.24/src/client.cpp:311:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_smMax = atoi( tag->findAttribute( "max" ).c_str() ); data/gloox-1.0.24/src/client.cpp:328:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int h = atoi( tag->findAttribute( "h" ).c_str() ); data/gloox-1.0.24/src/client.cpp:335:17: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int h = atoi( tag->findAttribute( "h" ).c_str() ); data/gloox-1.0.24/src/clientbase.cpp:591:28: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). cchUsernameW = ::MultiByteToWideChar( CP_UTF8, 0, m_jid.username().c_str(), -1, 0, 0 ); data/gloox-1.0.24/src/clientbase.cpp:595:15: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). ::MultiByteToWideChar( CP_UTF8, 0, m_jid.username().c_str(), -1, usernameW, cchUsernameW ); data/gloox-1.0.24/src/clientbase.cpp:599:26: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). cchDomainW = ::MultiByteToWideChar( CP_UTF8, 0, m_ntlmDomain.c_str(), -1, 0, 0 ); data/gloox-1.0.24/src/clientbase.cpp:603:15: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). ::MultiByteToWideChar( CP_UTF8, 0, m_ntlmDomain.c_str(), -1, domainW, cchDomainW ); data/gloox-1.0.24/src/clientbase.cpp:607:28: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). cchPasswordW = ::MultiByteToWideChar( CP_UTF8, 0, m_password.c_str(), -1, 0, 0 ); data/gloox-1.0.24/src/clientbase.cpp:611:15: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). ::MultiByteToWideChar( CP_UTF8, 0, m_password.c_str(), -1, passwordW, cchPasswordW ); data/gloox-1.0.24/src/clientbase.cpp:667:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char ipad[65]; data/gloox-1.0.24/src/clientbase.cpp:668:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char opad[65]; data/gloox-1.0.24/src/clientbase.cpp:671: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( ipad, key_.c_str(), key_.length() ); data/gloox-1.0.24/src/clientbase.cpp:672: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( opad, key_.c_str(), key_.length() ); data/gloox-1.0.24/src/clientbase.cpp:729:16: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). iter = atoi( tmp.c_str() ); data/gloox-1.0.24/src/clientbase.cpp:748:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char clientProof[20]; // ck XOR clientSignature data/gloox-1.0.24/src/clientbase.cpp:749: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( clientProof, ck.c_str(), 20 ); data/gloox-1.0.24/src/clientbase.cpp:859:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[4096]; data/gloox-1.0.24/src/clientbase.cpp:1173:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char r[48+1]; data/gloox-1.0.24/src/clientbase.cpp:1187:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int myMajor = atoi( XMPP_STREAM_VERSION_MAJOR.c_str() ); data/gloox-1.0.24/src/clientbase.cpp:1192:15: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). major = atoi( version.substr( 0, dot ).c_str() ); data/gloox-1.0.24/src/clientbase.cpp:1794:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char cn[4*8+1]; data/gloox-1.0.24/src/clientbase.cpp:1796:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf( cn + i*8, "%08x", rand() ); data/gloox-1.0.24/src/connectionbosh.cpp:378:31: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_bufferContentLength = atol( getHTTPField( "Content-Length" ).c_str() ); data/gloox-1.0.24/src/connectionbosh.cpp:483:36: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). const int serverRequests = atoi( tag->findAttribute( "requests" ).c_str() ); data/gloox-1.0.24/src/connectionbosh.cpp:493:29: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). const int maxHold = atoi( tag->findAttribute( "hold" ).c_str() ); data/gloox-1.0.24/src/connectionbosh.cpp:503:29: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). const int maxWait = atoi( tag->findAttribute( "wait" ).c_str() ); data/gloox-1.0.24/src/connectionbosh.cpp:514:29: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). const int minTime = atoi( tag->findAttribute( "polling" ).c_str() ); data/gloox-1.0.24/src/connectionsocks5proxy.cpp:300:41: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). d[pos++] = static_cast<char>( atoi( s.c_str() ) & 0xFF ); data/gloox-1.0.24/src/connectionsocks5proxy.cpp:359:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const char d[4] = { data/gloox-1.0.24/src/connectiontcpbase.cpp:211:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[INET6_ADDRSTRLEN]; data/gloox-1.0.24/src/connectiontcpserver.cpp:201:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[INET6_ADDRSTRLEN]; data/gloox-1.0.24/src/connectiontcpserver.cpp:202:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char portstr[NI_MAXSERV]; data/gloox-1.0.24/src/connectiontcpserver.cpp:209:58: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). atoi( portstr ) ); data/gloox-1.0.24/src/dns.cpp:143:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char srvname[NS_MAXDNAME]; data/gloox-1.0.24/src/dns.cpp:287:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ip[NI_MAXHOST]; data/gloox-1.0.24/src/dns.cpp:288:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char port[NI_MAXSERV]; data/gloox-1.0.24/src/dns.cpp:490:7: [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( &target.sin_addr, h->h_addr, sizeof( struct in_addr ) ); data/gloox-1.0.24/src/dns.h:172:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[NS_PACKETSZ]; data/gloox-1.0.24/src/examples/ft_send.cpp:93:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char input[200024]; data/gloox-1.0.24/src/flexoff.cpp:129:17: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). num = atoi( info.form()->field( "number_of_messages" )->value().c_str() ); data/gloox-1.0.24/src/inbandbytestream.cpp:59:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_blockSize = atoi( tag->findAttribute( "block-size" ).c_str() ); data/gloox-1.0.24/src/inbandbytestream.cpp:60:13: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_seq = atoi( tag->findAttribute( "seq" ).c_str() ); data/gloox-1.0.24/src/iodata.cpp:97:32: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_status.elapsed = atoi( t->cdata().c_str() ); data/gloox-1.0.24/src/iodata.cpp:101:34: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_status.remaining = atoi( t->cdata().c_str() ); data/gloox-1.0.24/src/iodata.cpp:105:35: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_status.percentage = atoi( t->cdata().c_str() ); data/gloox-1.0.24/src/jinglefiletransfer.cpp:78:22: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). f.size = t ? atoi( t->cdata().c_str() ) : -1; data/gloox-1.0.24/src/jinglefiletransfer.cpp:83:52: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). f.offset = t->hasAttribute( "offset" ) ? atoi( t->findAttribute( "offset" ).c_str() ) : -1; data/gloox-1.0.24/src/jingleiceudp.cpp:56:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). c.port = atoi( (*it)->findAttribute( "port" ).c_str() ); data/gloox-1.0.24/src/jingleiceudp.cpp:57:22: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). c.priority = atoi( (*it)->findAttribute( "priority" ).c_str() ); data/gloox-1.0.24/src/jingleiceudp.cpp:60:22: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). c.rel_port = atoi( (*it)->findAttribute( "rel-port" ).c_str() ); data/gloox-1.0.24/src/lastactivity.cpp:35:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_seconds = atoi( tag->findAttribute( "seconds" ).c_str() ); data/gloox-1.0.24/src/linklocalmanager.cpp:96:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char host[65]; data/gloox-1.0.24/src/md5.cpp:219:11: [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( xbuf, data, 64 ); data/gloox-1.0.24/src/md5.cpp:399:7: [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( m_state.buf + offset, p, copy ); data/gloox-1.0.24/src/md5.cpp:413:7: [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( m_state.buf, p, left ); data/gloox-1.0.24/src/md5.cpp:421:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char data[8]; data/gloox-1.0.24/src/md5.cpp:441:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[33]; data/gloox-1.0.24/src/md5.cpp:444:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf( buf + i * 2, "%02x", static_cast<unsigned char>( m_state.abcd[i >> 2] >> ( ( i & 3 ) << 3 ) ) ); data/gloox-1.0.24/src/md5.cpp:454:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char digest[16]; data/gloox-1.0.24/src/md5.h:135:20: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[64]; /* accumulate block */ data/gloox-1.0.24/src/md5.h:141:29: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pad[64]; data/gloox-1.0.24/src/mucroom.cpp:569:28: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_historyValue = atoi( (*it)->findAttribute( "seconds" ).c_str() ); data/gloox-1.0.24/src/mucroom.cpp:571:28: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_historyValue = atoi( (*it)->findAttribute( "maxstanzas" ).c_str() ); data/gloox-1.0.24/src/mucroom.cpp:573:28: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_historyValue = atoi( (*it)->findAttribute( "maxchars" ).c_str() ); data/gloox-1.0.24/src/presence.cpp:68:22: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_priority = atoi( (*it)->cdata().c_str() ); data/gloox-1.0.24/src/pubsubmanager.cpp:392:22: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). m_maxItems = atoi( i->findAttribute( "max_items" ).c_str() ); data/gloox-1.0.24/src/sha.cpp:61:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[41]; data/gloox-1.0.24/src/sha.cpp:63:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf( buf + i * 2, "%02x", static_cast<unsigned char>( H[i >> 2] >> ( ( 3 - ( i & 3 ) ) << 3 ) ) ); data/gloox-1.0.24/src/sha.cpp:73:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char digest[20]; data/gloox-1.0.24/src/sha.h:89:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char Message_Block[64]; data/gloox-1.0.24/src/siprofileft.cpp:220:35: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). atol( si.tag1()->findAttribute( "size" ).c_str() ), data/gloox-1.0.24/src/socks5bytestreammanager.cpp:78:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sh.port = atoi( (*it)->findAttribute( "port" ).c_str() ); data/gloox-1.0.24/src/socks5bytestreamserver.cpp:169:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char c[2]; data/gloox-1.0.24/src/tag.cpp:839:51: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). TokenType tokenType = static_cast<TokenType>( atoi( token->findAttribute( TYPE ).c_str() ) ); data/gloox-1.0.24/src/tag.cpp:885:24: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). else if( atoi( (*cit)->findAttribute( TYPE ).c_str() ) == XTDoubleDot && m_parent ) data/gloox-1.0.24/src/tag.cpp:969:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int pos = atoi( token->name().c_str() ); data/gloox-1.0.24/src/tag.cpp:994:51: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). TokenType tokenType = static_cast<TokenType>( atoi( token->findAttribute( TYPE ).c_str() ) ); data/gloox-1.0.24/src/tag.cpp:1042:45: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). TokenType tt1 = static_cast<TokenType>( atoi( ch1->findAttribute( TYPE ).c_str() ) ); data/gloox-1.0.24/src/tag.cpp:1043:45: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). TokenType tt2 = static_cast<TokenType>( atoi( ch2->findAttribute( TYPE ).c_str() ) ); data/gloox-1.0.24/src/tests/tag/tag_perf.cpp:66:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char values[sz_max]; data/gloox-1.0.24/src/tests/zlib/zlib_perf.cpp:61:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char values[sz_max+1]; data/gloox-1.0.24/src/tlsgnutlsbase.cpp:171:7: [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, static_cast<const void*>( m_recvBuffer.c_str() ), cpy ); data/gloox-1.0.24/src/tlsgnutlsclient.cpp:172:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char name[64]; data/gloox-1.0.24/src/tlsopensslbase.cpp:284:7: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char peer_CN[256]; data/gloox-1.0.24/src/tlsschannel.cpp:62:7: [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( e_message, data_copy.data(), size ); data/gloox-1.0.24/src/tlsschannel.cpp:157: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( e_iobuffer, m_buffer.data(), m_buffer.size() > data/gloox-1.0.24/src/tlsschannel.cpp:573:25: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). csizeServerName = MultiByteToWideChar( CP_ACP, 0, serverName, -1, NULL, 0 ); data/gloox-1.0.24/src/tlsschannel.cpp:582:25: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). csizeServerName = MultiByteToWideChar( CP_ACP, 0, serverName, -1, uServerName, csizeServerName ); data/gloox-1.0.24/src/util.cpp:65:9: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf( buf + i * 2, "%02x", static_cast<unsigned char>( H[i] ) ); data/gloox-1.0.24/src/connectionsocks5proxy.cpp:208:11: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy( d + pos, m_proxyUser.c_str(), m_proxyUser.length() ); data/gloox-1.0.24/src/connectionsocks5proxy.cpp:211:11: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy( d + pos, m_proxyPwd.c_str(), m_proxyPwd.length() ); data/gloox-1.0.24/src/connectionsocks5proxy.cpp:320:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy( d + pos, m_server.c_str(), m_server.length() ); data/gloox-1.0.24/src/dns.cpp:127:15: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). here += strlen; data/gloox-1.0.24/src/examples/ft_send.cpp:117:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ifile.read( input, 200024 ); data/gloox-1.0.24/src/prep.cpp:50:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy( p, s.c_str(), s.length() ); ANALYSIS SUMMARY: Hits = 101 Lines analyzed = 75264 in approximately 2.40 seconds (31303 lines/second) Physical Source Lines of Code (SLOC) = 45710 Hits@level = [0] 1339 [1] 6 [2] 89 [3] 5 [4] 1 [5] 0 Hits@level+ = [0+] 1440 [1+] 101 [2+] 95 [3+] 6 [4+] 1 [5+] 0 Hits/KSLOC@level+ = [0+] 31.503 [1+] 2.20958 [2+] 2.07832 [3+] 0.131262 [4+] 0.0218771 [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.