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/knotes-20.08.2/notesagent/notesagentnotedialog.h Examining data/knotes-20.08.2/notesagent/notesagent.h Examining data/knotes-20.08.2/notesagent/notesmanager.h Examining data/knotes-20.08.2/notesagent/notesagentnotedialog.cpp Examining data/knotes-20.08.2/notesagent/notesagentsettingsdialog.cpp Examining data/knotes-20.08.2/notesagent/notesagentalarmdialog.cpp Examining data/knotes-20.08.2/notesagent/notesagentalarmdialog.h Examining data/knotes-20.08.2/notesagent/notesmanager.cpp Examining data/knotes-20.08.2/notesagent/notesagent.cpp Examining data/knotes-20.08.2/notesagent/notesagentsettingsdialog.h Examining data/knotes-20.08.2/noteshared/autotests/noteeditorutilstest.h Examining data/knotes-20.08.2/noteshared/autotests/noteutilstest.h Examining data/knotes-20.08.2/noteshared/autotests/noteutilstest.cpp Examining data/knotes-20.08.2/noteshared/autotests/noteeditorutilstest.cpp Examining data/knotes-20.08.2/noteshared/src/noteshared_private_export.h Examining data/knotes-20.08.2/noteshared/src/network/notesnetworksender.h Examining data/knotes-20.08.2/noteshared/src/network/notehostdialog.cpp Examining data/knotes-20.08.2/noteshared/src/network/notesnetworkreceiver.cpp Examining data/knotes-20.08.2/noteshared/src/network/notehostdialog.h Examining data/knotes-20.08.2/noteshared/src/network/notesnetworkreceiver.h Examining data/knotes-20.08.2/noteshared/src/network/notesnetworksender.cpp Examining data/knotes-20.08.2/noteshared/src/widget/notelistwidget.cpp Examining data/knotes-20.08.2/noteshared/src/widget/notelistwidget.h Examining data/knotes-20.08.2/noteshared/src/dialog/selectednotefolderdialog.cpp Examining data/knotes-20.08.2/noteshared/src/dialog/selectednotefolderdialog.h Examining data/knotes-20.08.2/noteshared/src/akonadi/noteschangerecorder.h Examining data/knotes-20.08.2/noteshared/src/akonadi/notesakonaditreemodel.cpp Examining data/knotes-20.08.2/noteshared/src/akonadi/noteschangerecorder.cpp Examining data/knotes-20.08.2/noteshared/src/akonadi/notesakonaditreemodel.h Examining data/knotes-20.08.2/noteshared/src/alarms/notealarmdialog.cpp Examining data/knotes-20.08.2/noteshared/src/alarms/notealarmdialog.h Examining data/knotes-20.08.2/noteshared/src/job/createnewnotejob.h Examining data/knotes-20.08.2/noteshared/src/job/createnewnotejob.cpp Examining data/knotes-20.08.2/noteshared/src/noteutils.cpp Examining data/knotes-20.08.2/noteshared/src/resources/localresourcecreator.h Examining data/knotes-20.08.2/noteshared/src/resources/localresourcecreator.cpp Examining data/knotes-20.08.2/noteshared/src/resources/metatype.h Examining data/knotes-20.08.2/noteshared/src/attributes/notelockattribute.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/notealarmattribute.h Examining data/knotes-20.08.2/noteshared/src/attributes/notedisplayattribute.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/notealarmattribute.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/notedisplayattributetest.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/notelockattributetest.h Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/showfoldernotesattributetest.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/notedisplayattributetest.h Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/notealarmattributetest.h Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/notelockattributetest.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/showfoldernotesattributetest.h Examining data/knotes-20.08.2/noteshared/src/attributes/autotests/notealarmattributetest.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/showfoldernotesattribute.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/showfoldernotesattribute.h Examining data/knotes-20.08.2/noteshared/src/attributes/attributeregistrar.cpp Examining data/knotes-20.08.2/noteshared/src/attributes/notedisplayattribute.h Examining data/knotes-20.08.2/noteshared/src/attributes/notelockattribute.h Examining data/knotes-20.08.2/noteshared/src/config/noteactionconfig.cpp Examining data/knotes-20.08.2/noteshared/src/config/noteactionconfig.h Examining data/knotes-20.08.2/noteshared/src/config/notenetworkconfig.h Examining data/knotes-20.08.2/noteshared/src/config/notenetworkconfig.cpp Examining data/knotes-20.08.2/noteshared/src/noteutils.h Examining data/knotes-20.08.2/noteshared/src/editor/noteeditorutils.cpp Examining data/knotes-20.08.2/noteshared/src/editor/noteeditor.h Examining data/knotes-20.08.2/noteshared/src/editor/noteeditorutils.h Examining data/knotes-20.08.2/noteshared/src/editor/noteeditor.cpp Examining data/knotes-20.08.2/src/apps/knotesapp.h Examining data/knotes-20.08.2/src/apps/knotesapp.cpp Examining data/knotes-20.08.2/src/apps/knotestray.cpp Examining data/knotes-20.08.2/src/apps/knotesakonaditray.h Examining data/knotes-20.08.2/src/apps/application.cpp Examining data/knotes-20.08.2/src/apps/knotesakonaditray.cpp Examining data/knotes-20.08.2/src/apps/main.cpp Examining data/knotes-20.08.2/src/apps/knotestray.h Examining data/knotes-20.08.2/src/apps/knotes_options.h Examining data/knotes-20.08.2/src/apps/application.h Examining data/knotes-20.08.2/src/notes/knotesmigrateapplication.h Examining data/knotes-20.08.2/src/notes/knoteinterface.cpp Examining data/knotes-20.08.2/src/notes/knotedisplaysettings.h Examining data/knotes-20.08.2/src/notes/knotebutton.cpp Examining data/knotes-20.08.2/src/notes/knote.cpp Examining data/knotes-20.08.2/src/notes/knotedisplaysettings.cpp Examining data/knotes-20.08.2/src/notes/knote.h Examining data/knotes-20.08.2/src/notes/knotesmigrateapplication.cpp Examining data/knotes-20.08.2/src/notes/knotebutton.h Examining data/knotes-20.08.2/src/notes/knoteinterface.h Examining data/knotes-20.08.2/src/dialog/knotedeleteselectednotesdialog.cpp Examining data/knotes-20.08.2/src/dialog/knoteskeydialog.h Examining data/knotes-20.08.2/src/dialog/knoteskeydialog.cpp Examining data/knotes-20.08.2/src/dialog/knoteselectednotesdialog.h Examining data/knotes-20.08.2/src/dialog/knotedeleteselectednotesdialog.h Examining data/knotes-20.08.2/src/dialog/knoteselectednotesdialog.cpp Examining data/knotes-20.08.2/src/utils/knoteutils.cpp Examining data/knotes-20.08.2/src/utils/knoteutils.h Examining data/knotes-20.08.2/src/configdialog/knotedisplayconfigwidget.h Examining data/knotes-20.08.2/src/configdialog/knoteeditorconfigwidget.cpp Examining data/knotes-20.08.2/src/configdialog/knoteconfigdialog.cpp Examining data/knotes-20.08.2/src/configdialog/knotedisplayconfigwidget.cpp Examining data/knotes-20.08.2/src/configdialog/knotesimpleconfigdialog.cpp Examining data/knotes-20.08.2/src/configdialog/knotesimpleconfigdialog.h Examining data/knotes-20.08.2/src/configdialog/knoteeditorconfigwidget.h Examining data/knotes-20.08.2/src/configdialog/knotecollectionconfigwidget.cpp Examining data/knotes-20.08.2/src/configdialog/knotecollectionconfigwidget.h Examining data/knotes-20.08.2/src/configdialog/knoteconfigdialog.h Examining data/knotes-20.08.2/src/print/autotests/knotesgrantleeprinttest.h Examining data/knotes-20.08.2/src/print/autotests/knotesgrantleeprinttest.cpp Examining data/knotes-20.08.2/src/print/knoteprinter.cpp Examining data/knotes-20.08.2/src/print/knoteprintobject.h Examining data/knotes-20.08.2/src/print/knotegrantleeprint.h Examining data/knotes-20.08.2/src/print/knoteprintobject.cpp Examining data/knotes-20.08.2/src/print/knoteprintselectthemedialog.cpp Examining data/knotes-20.08.2/src/print/knoteprintselectthemecombobox.cpp Examining data/knotes-20.08.2/src/print/knotegrantleeprint.cpp Examining data/knotes-20.08.2/src/print/knoteprintselectednotesdialog.cpp Examining data/knotes-20.08.2/src/print/knoteprinter.h Examining data/knotes-20.08.2/src/print/knoteprintselectednotesdialog.h Examining data/knotes-20.08.2/src/print/knoteprintselectthemecombobox.h Examining data/knotes-20.08.2/src/print/knoteprintselectthemedialog.h Examining data/knotes-20.08.2/src/kontactplugin/knoteslistwidgetsearchline.cpp Examining data/knotes-20.08.2/src/kontactplugin/knotes_plugin.cpp Examining data/knotes-20.08.2/src/kontactplugin/knotesiconview.cpp Examining data/knotes-20.08.2/src/kontactplugin/summarywidget.cpp Examining data/knotes-20.08.2/src/kontactplugin/knotesselectdeletenotesdialog.cpp Examining data/knotes-20.08.2/src/kontactplugin/knoteseditdialog.h Examining data/knotes-20.08.2/src/kontactplugin/knotes_part.cpp Examining data/knotes-20.08.2/src/kontactplugin/summarywidget.h Examining data/knotes-20.08.2/src/kontactplugin/knoteswidget.h Examining data/knotes-20.08.2/src/kontactplugin/knotes_part.h Examining data/knotes-20.08.2/src/kontactplugin/knotesiconview.h Examining data/knotes-20.08.2/src/kontactplugin/knoteseditdialog.cpp Examining data/knotes-20.08.2/src/kontactplugin/knotes_plugin.h Examining data/knotes-20.08.2/src/kontactplugin/kcmknotessummary.cpp Examining data/knotes-20.08.2/src/kontactplugin/knotesselectdeletenotesdialog.h Examining data/knotes-20.08.2/src/kontactplugin/knoteslistwidgetsearchline.h Examining data/knotes-20.08.2/src/kontactplugin/kcmknotessummary.h Examining data/knotes-20.08.2/src/kontactplugin/knoteswidget.cpp Examining data/knotes-20.08.2/src/knoteedit.h Examining data/knotes-20.08.2/src/knoteedit.cpp Examining data/knotes-20.08.2/src/finddialog/knotefinddialog.h Examining data/knotes-20.08.2/src/finddialog/knotefinddialog.cpp FINAL RESULTS: data/knotes-20.08.2/noteshared/src/network/notesnetworkreceiver.cpp:114: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 smallBuffer[SBSIZE]; data/knotes-20.08.2/noteshared/src/network/notesnetworkreceiver.cpp:128: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(d->m_buffer->data() + curLen, smallBuffer, smallBufferLen); data/knotes-20.08.2/src/apps/knotesapp.cpp:427: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 (f.open(QIODevice::ReadOnly | QIODevice::Text)) { data/knotes-20.08.2/src/kontactplugin/knotes_part.cpp:760: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::WriteOnly)) { data/knotes-20.08.2/src/kontactplugin/knotes_part.cpp:874: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 (f.open(QIODevice::ReadOnly | QIODevice::Text)) { data/knotes-20.08.2/src/notes/knote.cpp:534: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::WriteOnly)) { data/knotes-20.08.2/noteshared/src/network/notesnetworkreceiver.cpp:121:37: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). smallBufferLen = d->m_sock->read(smallBuffer, SBSIZE); ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 15076 in approximately 4.32 seconds (3490 lines/second) Physical Source Lines of Code (SLOC) = 10272 Hits@level = [0] 1 [1] 1 [2] 6 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 8 [1+] 7 [2+] 6 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.778816 [1+] 0.681464 [2+] 0.584112 [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.