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/noblenote-1.2.0/src/textbrowser.cpp Examining data/noblenote-1.2.0/src/noteimporter.h Examining data/noblenote-1.2.0/src/progressreceiver.cpp Examining data/noblenote-1.2.0/src/findfilemodel.h Examining data/noblenote-1.2.0/src/xmlnotewriter.cpp Examining data/noblenote-1.2.0/src/welcome.cpp Examining data/noblenote-1.2.0/src/fileiconprovider.h Examining data/noblenote-1.2.0/src/mainwindow.h Examining data/noblenote-1.2.0/src/findfilemodel.cpp Examining data/noblenote-1.2.0/src/main.cpp Examining data/noblenote-1.2.0/src/trash.cpp Examining data/noblenote-1.2.0/src/xmlnotewriter.h Examining data/noblenote-1.2.0/src/note.h Examining data/noblenote-1.2.0/src/lineedit.cpp Examining data/noblenote-1.2.0/src/xorcipher.h Examining data/noblenote-1.2.0/src/note.cpp Examining data/noblenote-1.2.0/src/notedescriptor.h Examining data/noblenote-1.2.0/src/progressreceiver.h Examining data/noblenote-1.2.0/src/htmlnotewriter.cpp Examining data/noblenote-1.2.0/src/mainwindow.cpp Examining data/noblenote-1.2.0/src/textdocument.cpp Examining data/noblenote-1.2.0/src/backup.cpp Examining data/noblenote-1.2.0/src/xmlnotereader.cpp Examining data/noblenote-1.2.0/src/textsearchtoolbar.cpp Examining data/noblenote-1.2.0/src/backup.h Examining data/noblenote-1.2.0/src/abstractnotereader.h Examining data/noblenote-1.2.0/src/highlighter.cpp Examining data/noblenote-1.2.0/src/htmlnotereader.h Examining data/noblenote-1.2.0/src/lineedit.h Examining data/noblenote-1.2.0/src/htmlnotereader.cpp Examining data/noblenote-1.2.0/src/textdocument.h Examining data/noblenote-1.2.0/src/preferences.h Examining data/noblenote-1.2.0/src/textbrowser.h Examining data/noblenote-1.2.0/src/datetime.h Examining data/noblenote-1.2.0/src/welcome.h Examining data/noblenote-1.2.0/src/textformattingtoolbar.cpp Examining data/noblenote-1.2.0/src/highlighter.h Examining data/noblenote-1.2.0/src/filesystemmodel.h Examining data/noblenote-1.2.0/src/fileiconprovider.cpp Examining data/noblenote-1.2.0/src/datetime.cpp Examining data/noblenote-1.2.0/src/findfilesystemmodel.cpp Examining data/noblenote-1.2.0/src/trash.h Examining data/noblenote-1.2.0/src/xmlnotereader.h Examining data/noblenote-1.2.0/src/textsearchtoolbar.h Examining data/noblenote-1.2.0/src/notedescriptor.cpp Examining data/noblenote-1.2.0/src/findfilesystemmodel.h Examining data/noblenote-1.2.0/src/htmlnotewriter.h Examining data/noblenote-1.2.0/src/textformattingtoolbar.h Examining data/noblenote-1.2.0/src/noteimporter.cpp Examining data/noblenote-1.2.0/src/preferences.cpp Examining data/noblenote-1.2.0/src/xorcipher.cpp FINAL RESULTS: data/noblenote-1.2.0/src/datetime.cpp:36:26: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. return QString().sprintf("+%02d:00",offset); data/noblenote-1.2.0/src/datetime.cpp:38:22: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. return QString().sprintf("%02d:00",offset); data/noblenote-1.2.0/src/main.cpp:42:41: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. qtTranslator.load("qt_" + QLocale::system().name(), data/noblenote-1.2.0/src/main.cpp:49:37: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. translator.load(":" + QLocale::system().name()); data/noblenote-1.2.0/src/main.cpp:52:37: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. translator.load(tmp + QLocale::system().name()); data/noblenote-1.2.0/src/findfilemodel.cpp:190: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(file.open(QIODevice::ReadOnly)) data/noblenote-1.2.0/src/htmlnotereader.cpp:48: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::ReadOnly)) data/noblenote-1.2.0/src/htmlnotereader.cpp:66: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::ReadOnly | QIODevice::Text)) data/noblenote-1.2.0/src/htmlnotereader.cpp:112: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::ReadOnly)) data/noblenote-1.2.0/src/htmlnotewriter.cpp:72: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 | QIODevice::Truncate)) data/noblenote-1.2.0/src/mainwindow.cpp:684: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::ReadOnly | QIODevice::Text)) data/noblenote-1.2.0/src/mainwindow.cpp:761: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::WriteOnly)) data/noblenote-1.2.0/src/mainwindow.cpp:1066: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). versionFile.open(QIODevice::ReadOnly | QIODevice::Text); data/noblenote-1.2.0/src/xmlnotereader.cpp:41: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::ReadOnly)) data/noblenote-1.2.0/src/xmlnotereader.cpp:256: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::ReadOnly)) data/noblenote-1.2.0/src/xmlnotereader.cpp:296: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::ReadOnly)) data/noblenote-1.2.0/src/xmlnotewriter.cpp:40: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/noblenote-1.2.0/src/abstractnotereader.h:46:18: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). virtual void read() = 0; // read the contents of the document, methods below can only used after read has been called data/noblenote-1.2.0/src/backup.h:87:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). reader.read(); data/noblenote-1.2.0/src/htmlnotereader.cpp:40:22: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void HtmlNoteReader::read() data/noblenote-1.2.0/src/htmlnotereader.cpp:42:5: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(filePath_); data/noblenote-1.2.0/src/htmlnotereader.cpp:63:22: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void HtmlNoteReader::read(const QString& filePath) data/noblenote-1.2.0/src/htmlnotereader.h:47:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(); data/noblenote-1.2.0/src/htmlnotereader.h:84:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(const QString &filePath); // read the content's of a QIODevice and write the formatted text into a QTextDocument data/noblenote-1.2.0/src/notedescriptor.cpp:206:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). reader->read(); // XmlNoteReader.read can only be run in the gui thread data/noblenote-1.2.0/src/notedescriptor.cpp:224:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). reader->read(); data/noblenote-1.2.0/src/xmlnotereader.cpp:38:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void XmlNoteReader::read() data/noblenote-1.2.0/src/xmlnotereader.h:53:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(); ANALYSIS SUMMARY: Hits = 28 Lines analyzed = 6538 in approximately 0.27 seconds (24273 lines/second) Physical Source Lines of Code (SLOC) = 3957 Hits@level = [0] 0 [1] 11 [2] 12 [3] 0 [4] 5 [5] 0 Hits@level+ = [0+] 28 [1+] 28 [2+] 17 [3+] 5 [4+] 5 [5+] 0 Hits/KSLOC@level+ = [0+] 7.07607 [1+] 7.07607 [2+] 4.29618 [3+] 1.26358 [4+] 1.26358 [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.