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/parley-20.08.0/autotests/parleyunittestutilities.h
Examining data/parley-20.08.0/autotests/allpass2test.cpp
Examining data/parley-20.08.0/autotests/sessionmanagerfixedtest.h
Examining data/parley-20.08.0/autotests/testentrytest.cpp
Examining data/parley-20.08.0/autotests/sessionmanagerfixedtest.cpp
Examining data/parley-20.08.0/autotests/testentrytest.h
Examining data/parley-20.08.0/autotests/allpass1test.cpp
Examining data/parley-20.08.0/autotests/parleyunittestutilities.cpp
Examining data/parley-20.08.0/scripts_test/scripts.h
Examining data/parley-20.08.0/scripts_test/scripts.cpp
Examining data/parley-20.08.0/scripts_test/main.cpp
Examining data/parley-20.08.0/scripts_test/translationscript.cpp
Examining data/parley-20.08.0/scripts_test/translationscript.h
Examining data/parley-20.08.0/plasmoid/engine/parley_engine.h
Examining data/parley-20.08.0/plasmoid/engine/parley_engine.cpp
Examining data/parley-20.08.0/plasmoid/parley_plasma.h
Examining data/parley-20.08.0/plasmoid/parley_plasma.cpp
Examining data/parley-20.08.0/src/parleymainwindow.cpp
Examining data/parley-20.08.0/src/parleymainwindow.h
Examining data/parley-20.08.0/src/exportdialog.cpp
Examining data/parley-20.08.0/src/parleydocument.h
Examining data/parley-20.08.0/src/exportdialog.h
Examining data/parley-20.08.0/src/parleyactions.h
Examining data/parley-20.08.0/src/parleyactions.cpp
Examining data/parley-20.08.0/src/collection/entryfilterdialog.cpp
Examining data/parley-20.08.0/src/collection/containermimedata.cpp
Examining data/parley-20.08.0/src/collection/containermimedata.h
Examining data/parley-20.08.0/src/collection/entryfilterdialog.h
Examining data/parley-20.08.0/src/collection/containerview.cpp
Examining data/parley-20.08.0/src/collection/collection.cpp
Examining data/parley-20.08.0/src/collection/vocabularymimedata.cpp
Examining data/parley-20.08.0/src/collection/testentry.cpp
Examining data/parley-20.08.0/src/collection/lessonmodel.cpp
Examining data/parley-20.08.0/src/collection/vocabularymodel.cpp
Examining data/parley-20.08.0/src/collection/containerview.h
Examining data/parley-20.08.0/src/collection/wordclassmodel.cpp
Examining data/parley-20.08.0/src/collection/vocabularymimedata.h
Examining data/parley-20.08.0/src/collection/testentry.h
Examining data/parley-20.08.0/src/collection/lessonmodel.h
Examining data/parley-20.08.0/src/collection/collection.h
Examining data/parley-20.08.0/src/collection/readonlycontainermodel.h
Examining data/parley-20.08.0/src/collection/vocabularyfilter.h
Examining data/parley-20.08.0/src/collection/vocabularymodel.h
Examining data/parley-20.08.0/src/collection/entryfilter.cpp
Examining data/parley-20.08.0/src/collection/vocabularyfilter.cpp
Examining data/parley-20.08.0/src/collection/wordclassmodel.h
Examining data/parley-20.08.0/src/collection/entryfilter.h
Examining data/parley-20.08.0/src/collection/containermodel.cpp
Examining data/parley-20.08.0/src/collection/containermodel.h
Examining data/parley-20.08.0/src/collection/readonlycontainermodel.cpp
Examining data/parley-20.08.0/src/utils.h
Examining data/parley-20.08.0/src/dashboard/buttondelegate.cpp
Examining data/parley-20.08.0/src/dashboard/collectionwidget.h
Examining data/parley-20.08.0/src/dashboard/gradereferencewidget.cpp
Examining data/parley-20.08.0/src/dashboard/gradereferencewidget.h
Examining data/parley-20.08.0/src/dashboard/barwidget.cpp
Examining data/parley-20.08.0/src/dashboard/dashboard.h
Examining data/parley-20.08.0/src/dashboard/collectionwidget.cpp
Examining data/parley-20.08.0/src/dashboard/dashboard.cpp
Examining data/parley-20.08.0/src/dashboard/barwidget.h
Examining data/parley-20.08.0/src/dashboard/buttondelegate.h
Examining data/parley-20.08.0/src/parleydocument.cpp
Examining data/parley-20.08.0/src/settings/documentproperties.cpp
Examining data/parley-20.08.0/src/settings/languageproperties.cpp
Examining data/parley-20.08.0/src/settings/parleyprefs.cpp
Examining data/parley-20.08.0/src/settings/viewoptions.h
Examining data/parley-20.08.0/src/settings/languagepropertiespage.cpp
Examining data/parley-20.08.0/src/settings/documentproperties.h
Examining data/parley-20.08.0/src/settings/languagepropertiespage.h
Examining data/parley-20.08.0/src/settings/kgametheme/kgametheme.h
Examining data/parley-20.08.0/src/settings/kgametheme/kgamethemeselector.h
Examining data/parley-20.08.0/src/settings/kgametheme/kgamethemeselector.cpp
Examining data/parley-20.08.0/src/settings/kgametheme/kgametheme.cpp
Examining data/parley-20.08.0/src/settings/generaloptions.h
Examining data/parley-20.08.0/src/settings/generaloptions.cpp
Examining data/parley-20.08.0/src/settings/parleyprefs.h
Examining data/parley-20.08.0/src/settings/languageproperties.h
Examining data/parley-20.08.0/src/settings/viewoptions.cpp
Examining data/parley-20.08.0/src/main.cpp
Examining data/parley-20.08.0/src/utils.cpp
Examining data/parley-20.08.0/src/scripts/scripting/expression.h
Examining data/parley-20.08.0/src/scripts/scripting/identifier.cpp
Examining data/parley-20.08.0/src/scripts/scripting/document.cpp
Examining data/parley-20.08.0/src/scripts/scripting/text.cpp
Examining data/parley-20.08.0/src/scripts/scripting/lesson.cpp
Examining data/parley-20.08.0/src/scripts/scripting/translation.h
Examining data/parley-20.08.0/src/scripts/scripting/expression.cpp
Examining data/parley-20.08.0/src/scripts/scripting/lesson.h
Examining data/parley-20.08.0/src/scripts/scripting/document.h
Examining data/parley-20.08.0/src/scripts/scripting/translation.cpp
Examining data/parley-20.08.0/src/scripts/scripting/parley.h
Examining data/parley-20.08.0/src/scripts/scripting/text.h
Examining data/parley-20.08.0/src/scripts/scripting/container.h
Examining data/parley-20.08.0/src/scripts/scripting/parley.cpp
Examining data/parley-20.08.0/src/scripts/scripting/identifier.h
Examining data/parley-20.08.0/src/scripts/scripting/container.cpp
Examining data/parley-20.08.0/src/scripts/script.cpp
Examining data/parley-20.08.0/src/scripts/scriptmanager.cpp
Examining data/parley-20.08.0/src/scripts/scriptdialog.h
Examining data/parley-20.08.0/src/scripts/scriptdialog.cpp
Examining data/parley-20.08.0/src/scripts/translator.h
Examining data/parley-20.08.0/src/scripts/translator.cpp
Examining data/parley-20.08.0/src/scripts/script.h
Examining data/parley-20.08.0/src/scripts/scriptmanager.h
Examining data/parley-20.08.0/src/editor/imagechooserwidget.cpp
Examining data/parley-20.08.0/src/editor/audiowidget.h
Examining data/parley-20.08.0/src/editor/inflectionwidget.cpp
Examining data/parley-20.08.0/src/editor/summarywordwidget.cpp
Examining data/parley-20.08.0/src/editor/vocabularyheaderview.h
Examining data/parley-20.08.0/src/editor/wordtypeview.cpp
Examining data/parley-20.08.0/src/editor/vocabularycolumnsdialog.cpp
Examining data/parley-20.08.0/src/editor/FromToEntryPage.cpp
Examining data/parley-20.08.0/src/editor/comparisonwidget.cpp
Examining data/parley-20.08.0/src/editor/vocabularyheaderview.cpp
Examining data/parley-20.08.0/src/editor/editor.h
Examining data/parley-20.08.0/src/editor/summarywordwidget.h
Examining data/parley-20.08.0/src/editor/vocabularyview.cpp
Examining data/parley-20.08.0/src/editor/imagechooserwidget.h
Examining data/parley-20.08.0/src/editor/vocabularydelegate.h
Examining data/parley-20.08.0/src/editor/wordtypeview.h
Examining data/parley-20.08.0/src/editor/multiplechoicewidget.h
Examining data/parley-20.08.0/src/editor/synonymwidget.h
Examining data/parley-20.08.0/src/editor/vocabularydelegate.cpp
Examining data/parley-20.08.0/src/editor/browserwidget.h
Examining data/parley-20.08.0/src/editor/declensionwidget.h
Examining data/parley-20.08.0/src/editor/declensionwidget.cpp
Examining data/parley-20.08.0/src/editor/inflectionwidget.h
Examining data/parley-20.08.0/src/editor/lessonview.h
Examining data/parley-20.08.0/src/editor/multiplechoicewidget.cpp
Examining data/parley-20.08.0/src/editor/editor.cpp
Examining data/parley-20.08.0/src/editor/latexwidget.h
Examining data/parley-20.08.0/src/editor/browserwidget.cpp
Examining data/parley-20.08.0/src/editor/comparisonwidget.h
Examining data/parley-20.08.0/src/editor/latexwidget.cpp
Examining data/parley-20.08.0/src/editor/lessonview.cpp
Examining data/parley-20.08.0/src/editor/conjugationwidget.cpp
Examining data/parley-20.08.0/src/editor/synonymwidget.cpp
Examining data/parley-20.08.0/src/editor/audiowidget.cpp
Examining data/parley-20.08.0/src/editor/FromToEntryPage.h
Examining data/parley-20.08.0/src/editor/vocabularycolumnsdialog.h
Examining data/parley-20.08.0/src/editor/conjugationwidget.h
Examining data/parley-20.08.0/src/editor/vocabularyview.h
Examining data/parley-20.08.0/src/practice/genderbackendmode.cpp
Examining data/parley-20.08.0/src/practice/imagewidget.h
Examining data/parley-20.08.0/src/practice/statustogglebutton.cpp
Examining data/parley-20.08.0/src/practice/writtenpracticevalidator.cpp
Examining data/parley-20.08.0/src/practice/conjugationmodewidget.cpp
Examining data/parley-20.08.0/src/practice/conjugationbackendmode.h
Examining data/parley-20.08.0/src/practice/summarybarwidget.cpp
Examining data/parley-20.08.0/src/practice/practicemainwindow.h
Examining data/parley-20.08.0/src/practice/audiobutton.h
Examining data/parley-20.08.0/src/practice/multiplechoicemodewidget.cpp
Examining data/parley-20.08.0/src/practice/mixedlettersmodewidget.h
Examining data/parley-20.08.0/src/practice/practicestatemachine.h
Examining data/parley-20.08.0/src/practice/boxeswidget.cpp
Examining data/parley-20.08.0/src/practice/abstractbackendmode.h
Examining data/parley-20.08.0/src/practice/writtenpracticewidget.h
Examining data/parley-20.08.0/src/practice/latexrenderer.cpp
Examining data/parley-20.08.0/src/practice/statustogglebutton.h
Examining data/parley-20.08.0/src/practice/comparisonbackendmode.cpp
Examining data/parley-20.08.0/src/practice/sessionmanagercontinuous.cpp
Examining data/parley-20.08.0/src/practice/statustoggle.cpp
Examining data/parley-20.08.0/src/practice/writtenpracticevalidator.h
Examining data/parley-20.08.0/src/practice/guifrontend.h
Examining data/parley-20.08.0/src/practice/summarybarwidget.h
Examining data/parley-20.08.0/src/practice/conjugationmodewidget.h
Examining data/parley-20.08.0/src/practice/themedbackgroundrenderer.cpp
Examining data/parley-20.08.0/src/practice/themedbackgroundrenderer.h
Examining data/parley-20.08.0/src/practice/sessionmanagerbase.h
Examining data/parley-20.08.0/src/practice/abstractfrontend.cpp
Examining data/parley-20.08.0/src/practice/practicesummarycomponent.cpp
Examining data/parley-20.08.0/src/practice/practicemainwindow.cpp
Examining data/parley-20.08.0/src/practice/flashcardmodewidget.cpp
Examining data/parley-20.08.0/src/practice/sessionmanagercontinuous.h
Examining data/parley-20.08.0/src/practice/multiplechoicemodewidget.h
Examining data/parley-20.08.0/src/practice/practicestatemachine.cpp
Examining data/parley-20.08.0/src/practice/comparisonmodewidget.cpp
Examining data/parley-20.08.0/src/practice/multiplechoicedata.h
Examining data/parley-20.08.0/src/practice/practicesummarycomponent.h
Examining data/parley-20.08.0/src/practice/abstractwidget.h
Examining data/parley-20.08.0/src/practice/latexrenderer.h
Examining data/parley-20.08.0/src/practice/writtenbackendmode.h
Examining data/parley-20.08.0/src/practice/imagecache.cpp
Examining data/parley-20.08.0/src/practice/abstractfrontend.h
Examining data/parley-20.08.0/src/practice/flashcardmodewidget.h
Examining data/parley-20.08.0/src/practice/imagewidget.cpp
Examining data/parley-20.08.0/src/practice/conjugationdata.h
Examining data/parley-20.08.0/src/practice/writtenpracticewidget.cpp
Examining data/parley-20.08.0/src/practice/statustoggle.h
Examining data/parley-20.08.0/src/practice/genderbackendmode.h
Examining data/parley-20.08.0/src/practice/sessionmanagerfixed.h
Examining data/parley-20.08.0/src/practice/abstractbackendmode.cpp
Examining data/parley-20.08.0/src/practice/comparisonbackendmode.h
Examining data/parley-20.08.0/src/practice/multiplechoicebackendmode.h
Examining data/parley-20.08.0/src/practice/boxeswidget.h
Examining data/parley-20.08.0/src/practice/examplesentencebackendmode.h
Examining data/parley-20.08.0/src/practice/comparisonmodewidget.h
Examining data/parley-20.08.0/src/practice/flashcardbackendmode.h
Examining data/parley-20.08.0/src/practice/sessionmanagerbase.cpp
Examining data/parley-20.08.0/src/practice/examplesentencebackendmode.cpp
Examining data/parley-20.08.0/src/practice/imagecache.h
Examining data/parley-20.08.0/src/practice/writtenbackendmode.cpp
Examining data/parley-20.08.0/src/practice/configure/specificpracticeoptions.h
Examining data/parley-20.08.0/src/practice/configure/blockoptions.cpp
Examining data/parley-20.08.0/src/practice/configure/generalpracticeoptions.cpp
Examining data/parley-20.08.0/src/practice/configure/thresholdoptions.cpp
Examining data/parley-20.08.0/src/practice/configure/blockoptions.h
Examining data/parley-20.08.0/src/practice/configure/thresholdoptions.h
Examining data/parley-20.08.0/src/practice/configure/specificpracticeoptions.cpp
Examining data/parley-20.08.0/src/practice/configure/configurepracticedialog.h
Examining data/parley-20.08.0/src/practice/configure/configurepracticedialog.cpp
Examining data/parley-20.08.0/src/practice/configure/generalpracticeoptions.h
Examining data/parley-20.08.0/src/practice/conjugationbackendmode.cpp
Examining data/parley-20.08.0/src/practice/flashcardbackendmode.cpp
Examining data/parley-20.08.0/src/practice/abstractwidget.cpp
Examining data/parley-20.08.0/src/practice/sessionmanagerfixed.cpp
Examining data/parley-20.08.0/src/practice/audiobutton.cpp
Examining data/parley-20.08.0/src/practice/multiplechoicebackendmode.cpp
Examining data/parley-20.08.0/src/practice/guifrontend.cpp
Examining data/parley-20.08.0/src/practice/mixedlettersmodewidget.cpp
Examining data/parley-20.08.0/src/statistics/conjugationoptions.cpp
Examining data/parley-20.08.0/src/statistics/lessonstatisticsview.cpp
Examining data/parley-20.08.0/src/statistics/statisticsmodel.cpp
Examining data/parley-20.08.0/src/statistics/statisticslegendwidget.h
Examining data/parley-20.08.0/src/statistics/statisticslegendwidget.cpp
Examining data/parley-20.08.0/src/statistics/statisticsmodel.h
Examining data/parley-20.08.0/src/statistics/statisticsmainwindow.h
Examining data/parley-20.08.0/src/statistics/statisticsmainwindow.cpp
Examining data/parley-20.08.0/src/statistics/conjugationoptions.h
Examining data/parley-20.08.0/src/statistics/lessonstatisticsview.h

FINAL RESULTS:

data/parley-20.08.0/autotests/allpass1test.cpp:58:33:  [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).
    int docError = docWithLock->open(tempfile.fileName());
data/parley-20.08.0/autotests/parleyunittestutilities.cpp:32:11:  [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).
    this->open();
data/parley-20.08.0/plasmoid/engine/parley_engine.cpp:54: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).
        doc->open(QUrl::fromLocalFile(file));
data/parley-20.08.0/src/collection/collection.cpp:34: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).
    m_doc->open(*url, KEduVocDocument::FileOpenReadOnly);
data/parley-20.08.0/src/dashboard/dashboard.cpp:265:42:  [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 (!m_mainWindow->parleyDocument()->open(url)) {
data/parley-20.08.0/src/dashboard/dashboard.cpp:283:42:  [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 (!m_mainWindow->parleyDocument()->open(url)) {
data/parley-20.08.0/src/dashboard/dashboard.cpp:320:42:  [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 (!m_mainWindow->parleyDocument()->open(url)) {
data/parley-20.08.0/src/exportdialog.cpp:106:20:  [2] (misc) fopen:
  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).
    FILE* result = fopen(QFile::encodeName(filename.toLocalFile()).constData(), "w");
data/parley-20.08.0/src/parleyactions.cpp:83: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).
        pAction = KStandardAction::open(recvr, slot, parent);
data/parley-20.08.0/src/parleydocument.cpp:68:20:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if (grammarDoc.open(location) == KEduVocDocument::NoError) {
data/parley-20.08.0/src/parleydocument.cpp:182: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).
            && open(QUrl::fromLocalFile( dialog.selectedFiles().first() ))
data/parley-20.08.0/src/parleydocument.cpp:195: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).
    if ( queryClose() && open(url)) {
data/parley-20.08.0/src/parleydocument.cpp:200:22:  [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 ParleyDocument::open(const QUrl & url)
data/parley-20.08.0/src/parleydocument.cpp:217:45:  [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).
    KEduVocDocument::ErrorCode ret = m_doc->open(url,  KEduVocDocument::FileDefaultHandling);
data/parley-20.08.0/src/parleydocument.cpp:228: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).
            ret = m_doc->open(url, KEduVocDocument::FileIgnoreLock);
data/parley-20.08.0/src/parleydocument.cpp:322:13:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
        if (open(url)) {
data/parley-20.08.0/src/parleydocument.cpp:574:13:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
        if (open(QUrl::fromLocalFile(fileName)))
data/parley-20.08.0/src/parleydocument.cpp:633:18:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if ( tempDoc.open(url) != KEduVocDocument::NoError ) {
data/parley-20.08.0/src/parleydocument.h:64: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(const QUrl &);
data/parley-20.08.0/src/parleymainwindow.cpp:82:21:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
        m_document->open(filename);
data/parley-20.08.0/src/parleymainwindow.cpp:390:49:  [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).
void ParleyMainWindow::showDocumentActions(bool open, bool edit)
data/parley-20.08.0/src/parleymainwindow.cpp:392:72:  [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).
    actionCollection()->action(QStringLiteral("file_new"))->setVisible(open);
data/parley-20.08.0/src/parleymainwindow.cpp:393:73:  [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).
    actionCollection()->action(QStringLiteral("file_open"))->setVisible(open);
data/parley-20.08.0/src/parleymainwindow.cpp:394:80:  [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).
    actionCollection()->action(QStringLiteral("file_open_recent"))->setVisible(open);
data/parley-20.08.0/src/parleymainwindow.cpp:395:73:  [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).
    actionCollection()->action(QStringLiteral("file_ghns"))->setVisible(open);
data/parley-20.08.0/src/parleymainwindow.cpp:396:84:  [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).
    actionCollection()->action(QStringLiteral("file_open_downloaded"))->setVisible(open);
data/parley-20.08.0/src/parleymainwindow.h:140:35:  [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).
    void showDocumentActions(bool open, bool edit);
data/parley-20.08.0/src/practice/imagecache.cpp:73: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/parley-20.08.0/src/practice/imagecache.cpp:110: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).
    file.open(QIODevice::WriteOnly);
data/parley-20.08.0/src/practice/latexrenderer.cpp:69:21:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if ( ! texFile->open() ) {
data/parley-20.08.0/src/scripts/scripting/parley.cpp:76: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).
void Parley::open(const QString &filename)
data/parley-20.08.0/src/scripts/scripting/parley.cpp:80:47:  [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).
    m_editor->m_mainWindow->parleyDocument()->open(url);
data/parley-20.08.0/src/scripts/scripting/parley.h:302: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).
    void open(const QString &filename);
data/parley-20.08.0/src/settings/kgametheme/kgametheme.cpp:81:20:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if (!themefile.open(QIODevice::ReadOnly)) {
data/parley-20.08.0/src/settings/kgametheme/kgametheme.cpp:112:18:  [2] (misc) open:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).
    if (!svgFile.open(QIODevice::ReadOnly)) {

ANALYSIS SUMMARY:

Hits = 35
Lines analyzed = 30769 in approximately 0.93 seconds (33252 lines/second)
Physical Source Lines of Code (SLOC) = 18949
Hits@level = [0]   0 [1]   0 [2]  35 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  35 [1+]  35 [2+]  35 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 1.84706 [1+] 1.84706 [2+] 1.84706 [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.