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/akonadi-import-wizard-20.08.2/src/importwizard.cpp Examining data/akonadi-import-wizard-20.08.2/src/importwizardkernel.cpp Examining data/akonadi-import-wizard-20.08.2/src/importwizardkernel.h Examining data/akonadi-import-wizard-20.08.2/src/importmailpluginmanager.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractcalendar.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractbase.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractsettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractdisplayinfo.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractimporter.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractbase.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractdisplayinfo.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/importwizardutil.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/importwizardutil.cpp Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractimporter.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractcalendar.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard/abstractsettings.h Examining data/akonadi-import-wizard-20.08.2/src/libimportwizard_private_export.h Examining data/akonadi-import-wizard-20.08.2/src/importwizard.h Examining data/akonadi-import-wizard-20.08.2/src/main.cpp Examining data/akonadi-import-wizard-20.08.2/src/importmailpluginmanager.cpp Examining data/akonadi-import-wizard-20.08.2/src/manual/importwizardfilterinfogui.cpp Examining data/akonadi-import-wizard-20.08.2/src/manual/manualimportmailpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/manual/importwizardfilterinfogui.h Examining data/akonadi-import-wizard-20.08.2/src/manual/manualselectfilterpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/manual/manualimportmailpage.h Examining data/akonadi-import-wizard-20.08.2/src/manual/manualselectfilterpage.h Examining data/akonadi-import-wizard-20.08.2/src/importwizarddisplayinfo.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importfilterinfogui.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/widgets/selectprogramlistwidget.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/widgets/selectprogramlistwidget.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importfilterpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importcalendarpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importsettingpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/selectcomponentpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importaddressbookpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/selectcomponentpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importmailpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importmailpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importfilterpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importfinishpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importaddressbookpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importfilterinfogui.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importfinishpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importcalendarpage.h Examining data/akonadi-import-wizard-20.08.2/src/autodetect/selectprogrampage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/importsettingpage.cpp Examining data/akonadi-import-wizard-20.08.2/src/autodetect/selectprogrampage.h Examining data/akonadi-import-wizard-20.08.2/src/importwizarddisplayinfo.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedsettingsutils.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedsettingsutils.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedimportdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedsettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedsettings.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/seamonkey/seamonkeyimportdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/seamonkey/seamonkeyimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutioncalendar.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionsettings.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionutil.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionv3importdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutioncalendar.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionsettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionv3importdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionutil.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdsettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdimportdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdsettings.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/trojita/trojitaaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/trojita/trojitaaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/trojita/trojitasettings.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/trojita/trojitaimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/trojita/trojitasettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/trojita/trojitaimportdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/icedove/icedoveimportdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/icedove/icedoveimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsasettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsaimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsaimportdata.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsaaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsasettings.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsaaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailaddressbook.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailaddressbook.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailsettings.h Examining data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailimportdata.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailsettings.cpp Examining data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailimportdata.h FINAL RESULTS: data/akonadi-import-wizard-20.08.2/src/plugins/balsa/balsaaddressbook.cpp:86: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). if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { data/akonadi-import-wizard-20.08.2/src/plugins/claws-mail/clawsmailsettings.cpp:71:31: [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 (!customHeaderFile.open(QIODevice::ReadOnly)) { data/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutioncalendar.cpp:42: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/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionsettings.cpp:48: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/akonadi-import-wizard-20.08.2/src/plugins/evolutionv3/evolutionsettings.cpp:86: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/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedaddressbook.cpp:56: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/akonadi-import-wizard-20.08.2/src/plugins/sylpheed/sylpheedsettings.cpp:73:31: [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 (!customHeaderFile.open(QIODevice::ReadOnly)) { data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.cpp:30: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). bool MorkParser::open(const QString &path) data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.cpp:38: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). || !MorkFile.open(QIODevice::ReadOnly)) { data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.h:66: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 QString &path); data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdaddressbook.cpp:59: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 (!mork.open(filename)) { data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdsettings.cpp:52: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/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/thunderbirdsettings.cpp:971: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 (file.open(QIODevice::WriteOnly | QIODevice::Text)) { data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.cpp:176:49: [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). if (mMorkData.mid(mMorkPos - 1, strlen(MorkDictColumnMeta)) data/akonadi-import-wizard-20.08.2/src/plugins/thunderbird/addressbook/MorkParser.cpp:179:33: [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). mMorkPos += strlen(MorkDictColumnMeta) - 1; ANALYSIS SUMMARY: Hits = 15 Lines analyzed = 10382 in approximately 0.29 seconds (35536 lines/second) Physical Source Lines of Code (SLOC) = 7113 Hits@level = [0] 0 [1] 2 [2] 13 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 15 [1+] 15 [2+] 13 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 2.10881 [1+] 2.10881 [2+] 1.82764 [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.