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/kpimtextedit-20.08.2/autotests/textutilstest.cpp Examining data/kpimtextedit-20.08.2/autotests/slidecontainertest.h Examining data/kpimtextedit-20.08.2/autotests/emoticonunicodetabtest.cpp Examining data/kpimtextedit-20.08.2/autotests/editorutiltest.h Examining data/kpimtextedit-20.08.2/autotests/slidecontainertest.cpp Examining data/kpimtextedit-20.08.2/autotests/textutilstest.h Examining data/kpimtextedit-20.08.2/autotests/emoticonunicodetabtest.h Examining data/kpimtextedit-20.08.2/autotests/emoticonlistwidgetselectortest.h Examining data/kpimtextedit-20.08.2/autotests/emoticonlistwidgetselectortest.cpp Examining data/kpimtextedit-20.08.2/autotests/editorutiltest.cpp Examining data/kpimtextedit-20.08.2/tests/testgeneratehtmlbuildergui.cpp Examining data/kpimtextedit-20.08.2/tests/testgenerateplaintextbuildergui.cpp Examining data/kpimtextedit-20.08.2/tests/slidecontainer_gui.cpp Examining data/kpimtextedit-20.08.2/tests/testgeneratehtmlbuildergui.h Examining data/kpimtextedit-20.08.2/tests/testgenerateplaintextbuildergui.h Examining data/kpimtextedit-20.08.2/tests/inserthtmldialog_demo.cpp Examining data/kpimtextedit-20.08.2/tests/showemoticonunicodetab_gui.cpp Examining data/kpimtextedit-20.08.2/src/insertimagewidget.cpp Examining data/kpimtextedit-20.08.2/src/tableactionmenu.cpp Examining data/kpimtextedit-20.08.2/src/grantleebuilder/autotests/plaintextmarkupbuildertest.h Examining data/kpimtextedit-20.08.2/src/grantleebuilder/autotests/texthtmlbuildertest.cpp Examining data/kpimtextedit-20.08.2/src/grantleebuilder/autotests/texthtmlbuildertest.h Examining data/kpimtextedit-20.08.2/src/grantleebuilder/autotests/plaintextmarkupbuildertest.cpp Examining data/kpimtextedit-20.08.2/src/grantleebuilder/markupdirector.cpp Examining data/kpimtextedit-20.08.2/src/grantleebuilder/texthtmlbuilder.h Examining data/kpimtextedit-20.08.2/src/grantleebuilder/markupdirector_p.h Examining data/kpimtextedit-20.08.2/src/grantleebuilder/markupdirector.h Examining data/kpimtextedit-20.08.2/src/grantleebuilder/texthtmlbuilder.cpp Examining data/kpimtextedit-20.08.2/src/grantleebuilder/plaintextmarkupbuilder.cpp Examining data/kpimtextedit-20.08.2/src/grantleebuilder/plaintextmarkupbuilder.h Examining data/kpimtextedit-20.08.2/src/grantleebuilder/abstractmarkupbuilder.h Examining data/kpimtextedit-20.08.2/src/editorutil.cpp Examining data/kpimtextedit-20.08.2/src/inserttablewidget.h Examining data/kpimtextedit-20.08.2/src/tableformatdialog.cpp Examining data/kpimtextedit-20.08.2/src/inserttabledialog.h Examining data/kpimtextedit-20.08.2/src/insertimagewidget.h Examining data/kpimtextedit-20.08.2/src/inserthtmldialog.h Examining data/kpimtextedit-20.08.2/src/editorutil.h Examining data/kpimtextedit-20.08.2/src/selectspecialchardialog.h Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/richtexteditor.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/richtexteditorwidget.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/autotests/richtexteditortest.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/autotests/richtexteditortest.h Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/richtexteditfindbar.h Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/richtexteditorwidget.h Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/tests/richtexteditor_gui.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/richtexteditor.h Examining data/kpimtextedit-20.08.2/src/texteditor/richtexteditor/richtexteditfindbar.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintexteditfindbar.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/autotests/plaintexteditortest.h Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/autotests/plaintexteditortest.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintexteditor.h Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/tests/plaintexteditor_gui.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintexteditorwidget.h Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintexteditfindbar.h Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintextsyntaxspellcheckinghighlighter.h Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintexteditorwidget.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintextsyntaxspellcheckinghighlighter.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/plaintexteditor/plaintexteditor.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/autotests/textgotolinewidgettest.h Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/autotests/textgotolinewidgettest.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/textfindreplacewidget.h Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/texteditfindbarbase.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/findutils.h Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/texteditfindbarbase.h Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/textmessageindicator.h Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/textfindreplacewidget.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/textgotolinewidget.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/textmessageindicator.cpp Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/textgotolinewidget.h Examining data/kpimtextedit-20.08.2/src/texteditor/commonwidget/findutils.cpp Examining data/kpimtextedit-20.08.2/src/insertimagedialog.cpp Examining data/kpimtextedit-20.08.2/src/inserttabledialog.cpp Examining data/kpimtextedit-20.08.2/src/textutils.h Examining data/kpimtextedit-20.08.2/src/tablecellformatdialog.cpp Examining data/kpimtextedit-20.08.2/src/inserthtmldialog.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposeremailquotedecorator.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposeractionstest.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposercontrolertest.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposerimagestest.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposerimagestest.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposerwidgettest.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextexternalcomposertest.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextexternalcomposertest.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposeractionstest.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposercontrolertest.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposertest.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposerwidgettest.h Examining data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposertest.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposercontroler.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposerimages.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposeractions.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextexternalcomposer.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/tests/richtextcomposerwidget_gui.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposeractions.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposeremailquotehighlighter.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposerwidget.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposerwidget.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/nestedlisthelper.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposeremailquotehighlighter.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextexternalcomposer.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposer.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/klinkdialog.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposeremailquotedecorator.cpp Examining data/kpimtextedit-20.08.2/src/composer-ng/nestedlisthelper_p.h Examining data/kpimtextedit-20.08.2/src/composer-ng/klinkdialog_p.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposer.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposercontroler.h Examining data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposerimages.h Examining data/kpimtextedit-20.08.2/src/tableactionmenu.h Examining data/kpimtextedit-20.08.2/src/inserthtmleditor.cpp Examining data/kpimtextedit-20.08.2/src/tablecellformatdialog.h Examining data/kpimtextedit-20.08.2/src/texteditorcompleter.h Examining data/kpimtextedit-20.08.2/src/inserthtmleditor.h Examining data/kpimtextedit-20.08.2/src/tableformatdialog.h Examining data/kpimtextedit-20.08.2/src/insertimagedialog.h Examining data/kpimtextedit-20.08.2/src/selectspecialchardialog.cpp Examining data/kpimtextedit-20.08.2/src/inserttablewidget.cpp Examining data/kpimtextedit-20.08.2/src/emoticon/emoticontexteditaction.cpp Examining data/kpimtextedit-20.08.2/src/emoticon/emoticonunicodetab.cpp Examining data/kpimtextedit-20.08.2/src/emoticon/emoticontexteditaction.h Examining data/kpimtextedit-20.08.2/src/emoticon/emoticontexteditselector.h Examining data/kpimtextedit-20.08.2/src/emoticon/emoticonunicodeutils.cpp Examining data/kpimtextedit-20.08.2/src/emoticon/emoticonlistwidgetselector.h Examining data/kpimtextedit-20.08.2/src/emoticon/emoticonlistwidgetselector.cpp Examining data/kpimtextedit-20.08.2/src/emoticon/emoticonunicodeutils.h Examining data/kpimtextedit-20.08.2/src/emoticon/emoticonunicodetab.h Examining data/kpimtextedit-20.08.2/src/emoticon/emoticontexteditselector.cpp Examining data/kpimtextedit-20.08.2/src/slidecontainer.h Examining data/kpimtextedit-20.08.2/src/texteditorcompleter.cpp Examining data/kpimtextedit-20.08.2/src/textutils.cpp Examining data/kpimtextedit-20.08.2/src/slidecontainer.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechinterface.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechactions.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechlanguagecombobox.h Examining data/kpimtextedit-20.08.2/src/texttospeech/autotests/texttospeechwidgettest.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/autotests/texttospeechwidgettest.h Examining data/kpimtextedit-20.08.2/src/texttospeech/autotests/texttospeechactionstest.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/autotests/texttospeechactionstest.h Examining data/kpimtextedit-20.08.2/src/texttospeech/autotests/texttospeechconfigwidgettest.h Examining data/kpimtextedit-20.08.2/src/texttospeech/autotests/texttospeechconfigwidgettest.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechconfiginterface.h Examining data/kpimtextedit-20.08.2/src/texttospeech/tests/texttospeechwidget_gui.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/tests/texttospeechgui.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/tests/texttospeechconfiggui.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/tests/texttospeechconfiggui.h Examining data/kpimtextedit-20.08.2/src/texttospeech/tests/texttospeechconfigdialoggui.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/tests/texttospeechgui.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechconfigdialog.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechconfigwidget.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/abstracttexttospeechinterface.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechwidget.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechactions.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechconfigwidget.h Examining data/kpimtextedit-20.08.2/src/texttospeech/abstracttexttospeechinterface.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechinterface.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeech.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechwidget.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeech.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/abstracttexttospeechconfiginterface.h Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechconfigdialog.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/abstracttexttospeechconfiginterface.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechconfiginterface.cpp Examining data/kpimtextedit-20.08.2/src/texttospeech/texttospeechlanguagecombobox.cpp Examining data/kpimtextedit-20.08.2/src/kpimtextedit_private_export.h FINAL RESULTS: data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposertest.cpp:311: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::WriteOnly); data/kpimtextedit-20.08.2/src/composer-ng/autotests/richtextcomposertest.cpp:314: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). imageWithNameBuffer.open(QIODevice::WriteOnly); data/kpimtextedit-20.08.2/src/composer-ng/richtextcomposerimages.cpp:205: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::WriteOnly); data/kpimtextedit-20.08.2/src/composer-ng/richtextexternalcomposer.cpp:90:36: [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 (!d->extEditorTempFile->open()) { data/kpimtextedit-20.08.2/src/composer-ng/richtextexternalcomposer.cpp:149:23: [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 (localFile.open(QIODevice::ReadOnly | QIODevice::Text)) { data/kpimtextedit-20.08.2/src/grantleebuilder/autotests/plaintextmarkupbuildertest.cpp:761:24: [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(sourceHtml.open(QIODevice::ReadOnly)); ANALYSIS SUMMARY: Hits = 6 Lines analyzed = 24866 in approximately 0.83 seconds (29879 lines/second) Physical Source Lines of Code (SLOC) = 17420 Hits@level = [0] 0 [1] 0 [2] 6 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 6 [1+] 6 [2+] 6 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.344432 [1+] 0.344432 [2+] 0.344432 [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.