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/kservice-5.74.0/autotests/ksycoca_xdgdirstest.cpp Examining data/kservice-5.74.0/autotests/kmimeassociationstest.cpp Examining data/kservice-5.74.0/autotests/kplugininfotest.cpp Examining data/kservice-5.74.0/autotests/setupxdgdirs.h Examining data/kservice-5.74.0/autotests/nsaplugin.h Examining data/kservice-5.74.0/autotests/nsaplugin.cpp Examining data/kservice-5.74.0/autotests/kservicetest.cpp Examining data/kservice-5.74.0/autotests/kplugintradertest.h Examining data/kservice-5.74.0/autotests/ksycocadicttest.cpp Examining data/kservice-5.74.0/autotests/kplugintradertest.cpp Examining data/kservice-5.74.0/autotests/ksycocathreadtest.cpp Examining data/kservice-5.74.0/autotests/ksycocatest.cpp Examining data/kservice-5.74.0/autotests/kautostarttest.h Examining data/kservice-5.74.0/autotests/kapplicationtradertest.cpp Examining data/kservice-5.74.0/autotests/kautostarttest.cpp Examining data/kservice-5.74.0/autotests/kservicetest.h Examining data/kservice-5.74.0/tests/findservice.cpp Examining data/kservice-5.74.0/tests/kmimeassociations_dumper.cpp Examining data/kservice-5.74.0/tests/kdbusservicestartertest.cpp Examining data/kservice-5.74.0/tests/startserviceby.cpp Examining data/kservice-5.74.0/tests/pluginlocator/plugintest.h Examining data/kservice-5.74.0/tests/pluginlocator/main.cpp Examining data/kservice-5.74.0/tests/pluginlocator/plugintest.cpp Examining data/kservice-5.74.0/tests/kservicegroup_dumper.cpp Examining data/kservice-5.74.0/src/sycoca/kctimefactory_p.h Examining data/kservice-5.74.0/src/sycoca/kbuildservicegroupfactory_p.h Examining data/kservice-5.74.0/src/sycoca/kbuildmimetypefactory.cpp Examining data/kservice-5.74.0/src/sycoca/kbuildmimetypefactory_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocaentry_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocadevices.cpp Examining data/kservice-5.74.0/src/sycoca/kbuildservicefactory_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocadict.cpp Examining data/kservice-5.74.0/src/sycoca/ksycocaentry.h Examining data/kservice-5.74.0/src/sycoca/kbuildservicegroupfactory.cpp Examining data/kservice-5.74.0/src/sycoca/kbuildsycocainterface_p.h Examining data/kservice-5.74.0/src/sycoca/ksycoca_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocaresourcelist_p.h Examining data/kservice-5.74.0/src/sycoca/kbuildservicetypefactory.cpp Examining data/kservice-5.74.0/src/sycoca/kbuildsycoca.cpp Examining data/kservice-5.74.0/src/sycoca/kbuildservicefactory.cpp Examining data/kservice-5.74.0/src/sycoca/ksycocafactory_p.h Examining data/kservice-5.74.0/src/sycoca/kmemfile_p.h Examining data/kservice-5.74.0/src/sycoca/vfolder_menu.cpp Examining data/kservice-5.74.0/src/sycoca/kmemfile.cpp Examining data/kservice-5.74.0/src/sycoca/ksycocaentry.cpp Examining data/kservice-5.74.0/src/sycoca/kbuildservicetypefactory_p.h Examining data/kservice-5.74.0/src/sycoca/kbuildsycoca_p.h Examining data/kservice-5.74.0/src/sycoca/kmimeassociations.cpp Examining data/kservice-5.74.0/src/sycoca/ksycoca.cpp Examining data/kservice-5.74.0/src/sycoca/ksycocafactory.cpp Examining data/kservice-5.74.0/src/sycoca/vfolder_menu_p.h Examining data/kservice-5.74.0/src/sycoca/ksycoca.h Examining data/kservice-5.74.0/src/sycoca/kctimefactory.cpp Examining data/kservice-5.74.0/src/sycoca/kmimeassociations_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocadevices_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocautils_p.h Examining data/kservice-5.74.0/src/sycoca/ksycocatype.h Examining data/kservice-5.74.0/src/sycoca/ksycocadict_p.h Examining data/kservice-5.74.0/src/kdeinit/ktoolinvocation.h Examining data/kservice-5.74.0/src/kdeinit/ktoolinvocation_win.cpp Examining data/kservice-5.74.0/src/kdeinit/ktoolinvocation.cpp Examining data/kservice-5.74.0/src/kdeinit/ktoolinvocation_x11.cpp Examining data/kservice-5.74.0/src/services/kservice.h Examining data/kservice-5.74.0/src/services/kservice_p.h Examining data/kservice-5.74.0/src/services/kservicetypetrader.h Examining data/kservice-5.74.0/src/services/ktraderparse.cpp Examining data/kservice-5.74.0/src/services/kservicetypeprofile.h Examining data/kservice-5.74.0/src/services/kserviceaction.cpp Examining data/kservice-5.74.0/src/services/kapplicationtrader.h Examining data/kservice-5.74.0/src/services/kautostart.cpp Examining data/kservice-5.74.0/src/services/kserviceaction.h Examining data/kservice-5.74.0/src/services/kservicefactory_p.h Examining data/kservice-5.74.0/src/services/kmimetypetrader.h Examining data/kservice-5.74.0/src/services/kserviceoffer.cpp Examining data/kservice-5.74.0/src/services/kserviceoffer.h Examining data/kservice-5.74.0/src/services/kservicetype.h Examining data/kservice-5.74.0/src/services/kautostart.h Examining data/kservice-5.74.0/src/services/kservicetypefactory_p.h Examining data/kservice-5.74.0/src/services/kservicetype_p.h Examining data/kservice-5.74.0/src/services/kservicegroup.cpp Examining data/kservice-5.74.0/src/services/kservicetypeprofile_p.h Examining data/kservice-5.74.0/src/services/kservicetypeprofile.cpp Examining data/kservice-5.74.0/src/services/kservicetype.cpp Examining data/kservice-5.74.0/src/services/kservicegroup_p.h Examining data/kservice-5.74.0/src/services/kservicetypefactory.cpp Examining data/kservice-5.74.0/src/services/kservicetypetrader.cpp Examining data/kservice-5.74.0/src/services/kmimetypefactory.cpp Examining data/kservice-5.74.0/src/services/kservicegroupfactory_p.h Examining data/kservice-5.74.0/src/services/kplugininfo.h Examining data/kservice-5.74.0/src/services/kservice.cpp Examining data/kservice-5.74.0/src/services/ktraderparsetree.cpp Examining data/kservice-5.74.0/src/services/ktraderparsetree_p.h Examining data/kservice-5.74.0/src/services/kservicefactory.cpp Examining data/kservice-5.74.0/src/services/kservicegroup.h Examining data/kservice-5.74.0/src/services/kmimetypefactory_p.h Examining data/kservice-5.74.0/src/services/kapplicationtrader.cpp Examining data/kservice-5.74.0/src/services/kmimetypetrader.cpp Examining data/kservice-5.74.0/src/services/kplugininfo.cpp Examining data/kservice-5.74.0/src/services/kserviceutil_p.h Examining data/kservice-5.74.0/src/services/ktraderparse_p.h Examining data/kservice-5.74.0/src/services/kservicegroupfactory.cpp Examining data/kservice-5.74.0/src/kbuildsycoca/kbuildsycoca_main.cpp Examining data/kservice-5.74.0/src/plugin/kplugintrader.h Examining data/kservice-5.74.0/src/plugin/kdbusservicestarter.cpp Examining data/kservice-5.74.0/src/plugin/kdbusservicestarter.h Examining data/kservice-5.74.0/src/plugin/kplugintrader.cpp FINAL RESULTS: data/kservice-5.74.0/autotests/kmimeassociationstest.cpp:236:26: [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(tempFile.open(QIODevice::WriteOnly)); data/kservice-5.74.0/autotests/kmimeassociationstest.cpp:290:32: [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(tempFileGlobal.open(QIODevice::WriteOnly)); data/kservice-5.74.0/autotests/kmimeassociationstest.cpp:304:26: [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(tempFile.open(QIODevice::WriteOnly)); data/kservice-5.74.0/autotests/kmimeassociationstest.cpp:486: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(mimeAppsFile.open(QIODevice::WriteOnly)); data/kservice-5.74.0/autotests/kplugininfotest.cpp:53:26: [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(jsonFile.open(QFile::ReadOnly)); data/kservice-5.74.0/autotests/kplugininfotest.cpp:66:32: [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(compatJsonFile.open(QFile::ReadOnly)); data/kservice-5.74.0/src/sycoca/kbuildsycoca.cpp:391: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). bool openedOK = database.open(QIODevice::WriteOnly); data/kservice-5.74.0/src/sycoca/kbuildsycoca.cpp:395:29: [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). openedOK = database.open(QIODevice::WriteOnly); data/kservice-5.74.0/src/sycoca/kmemfile.cpp:65: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). if (!f.open(QIODevice::ReadOnly)) { data/kservice-5.74.0/src/sycoca/kmemfile.cpp:131: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). bool KMemFile::open(OpenMode mode) data/kservice-5.74.0/src/sycoca/kmemfile.cpp:134: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). QIODevice::open(mode); data/kservice-5.74.0/src/sycoca/kmemfile.cpp:217: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, &src[d->readWritePos], bytesToRead); data/kservice-5.74.0/src/sycoca/kmemfile_p.h:57:10: [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). bool open(OpenMode mode) override; data/kservice-5.74.0/src/sycoca/ksycoca.cpp:124:38: [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). const bool canRead = m_mmapFile->open(QIODevice::ReadOnly); data/kservice-5.74.0/src/sycoca/ksycoca.cpp:247:32: [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->device()->open(QIODevice::ReadOnly)) { data/kservice-5.74.0/src/sycoca/ksycoca.cpp:255:32: [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->device()->open(QIODevice::ReadOnly)) { data/kservice-5.74.0/src/sycoca/ksycoca.cpp:262:32: [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->device()->open(QIODevice::ReadOnly)) { data/kservice-5.74.0/src/sycoca/vfolder_menu.cpp:449:15: [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::ReadOnly)) { data/kservice-5.74.0/src/sycoca/kmemfile.cpp:84:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). bytesRead = f.read(data, infoPtr->shmDataSize); ANALYSIS SUMMARY: Hits = 19 Lines analyzed = 22864 in approximately 1.00 seconds (22915 lines/second) Physical Source Lines of Code (SLOC) = 14888 Hits@level = [0] 3 [1] 1 [2] 18 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 22 [1+] 19 [2+] 18 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 1.4777 [1+] 1.2762 [2+] 1.20903 [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.