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/kturtle-20.04.0/src/interpreteradaptor.cpp Examining data/kturtle-20.04.0/src/mainwindow.h Examining data/kturtle-20.04.0/src/canvas.h Examining data/kturtle-20.04.0/src/editor.h Examining data/kturtle-20.04.0/src/directiondialog.cpp Examining data/kturtle-20.04.0/src/colorpicker.h Examining data/kturtle-20.04.0/src/colorpicker.cpp Examining data/kturtle-20.04.0/src/mainwindow.cpp Examining data/kturtle-20.04.0/src/interpreteradaptor.h Examining data/kturtle-20.04.0/src/highlighter.cpp Examining data/kturtle-20.04.0/src/errordialog.h Examining data/kturtle-20.04.0/src/console.cpp Examining data/kturtle-20.04.0/src/sprite.h Examining data/kturtle-20.04.0/src/main.cpp Examining data/kturtle-20.04.0/src/editor.cpp Examining data/kturtle-20.04.0/src/sprite.cpp Examining data/kturtle-20.04.0/src/console.h Examining data/kturtle-20.04.0/src/directiondialog.h Examining data/kturtle-20.04.0/src/inspector.cpp Examining data/kturtle-20.04.0/src/canvas.cpp Examining data/kturtle-20.04.0/src/inspector.h Examining data/kturtle-20.04.0/src/interpreter/executer.cpp Examining data/kturtle-20.04.0/src/interpreter/value.cpp Examining data/kturtle-20.04.0/src/interpreter/value.h Examining data/kturtle-20.04.0/src/interpreter/errormsg.h Examining data/kturtle-20.04.0/src/interpreter/tokenizer.h Examining data/kturtle-20.04.0/src/interpreter/tokenizer.cpp Examining data/kturtle-20.04.0/src/interpreter/echoer.h Examining data/kturtle-20.04.0/src/interpreter/interpreter.cpp Examining data/kturtle-20.04.0/src/interpreter/token.h Examining data/kturtle-20.04.0/src/interpreter/echoer.cpp Examining data/kturtle-20.04.0/src/interpreter/parser.h Examining data/kturtle-20.04.0/src/interpreter/executer.h Examining data/kturtle-20.04.0/src/interpreter/translator.h Examining data/kturtle-20.04.0/src/interpreter/interpreter.h Examining data/kturtle-20.04.0/src/interpreter/treenode.h Examining data/kturtle-20.04.0/src/interpreter/translator.cpp Examining data/kturtle-20.04.0/src/interpreter/token.cpp Examining data/kturtle-20.04.0/src/interpreter/treenode.cpp Examining data/kturtle-20.04.0/src/interpreter/errormsg.cpp Examining data/kturtle-20.04.0/src/interpreter/parser.cpp Examining data/kturtle-20.04.0/src/highlighter.h Examining data/kturtle-20.04.0/src/errordialog.cpp FINAL RESULTS: data/kturtle-20.04.0/src/interpreter/executer.cpp:967:42: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. double r = static_cast<double>(KRandom::random()) / RAND_MAX; data/kturtle-20.04.0/src/editor.cpp:172:17: [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 (!buffer.open(QIODevice::ReadOnly | QIODevice::Text)) { data/kturtle-20.04.0/src/editor.cpp:209:7: [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). tmp.open(); data/kturtle-20.04.0/src/editor.cpp:213:17: [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 (savefile->open(QIODevice::WriteOnly)) { data/kturtle-20.04.0/src/main.cpp:98:59: [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 (parser.isSet(QStringLiteral("input"))) mainWindow->open(parser.value(QStringLiteral("input"))); data/kturtle-20.04.0/src/main.cpp:115: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 (!inputFile.open(QIODevice::ReadOnly | QIODevice::Text)) { data/kturtle-20.04.0/src/main.cpp:150: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 (!inputFile.open(QIODevice::ReadOnly | QIODevice::Text)) { data/kturtle-20.04.0/src/mainwindow.cpp:1058: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). if (!file.open(QIODevice::WriteOnly)) data/kturtle-20.04.0/src/mainwindow.h:62:8: [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& pathOrUrl) { editor->openFile(QUrl(pathOrUrl)); } // for main.cpp ANALYSIS SUMMARY: Hits = 9 Lines analyzed = 10240 in approximately 1.50 seconds (6829 lines/second) Physical Source Lines of Code (SLOC) = 6856 Hits@level = [0] 0 [1] 0 [2] 8 [3] 1 [4] 0 [5] 0 Hits@level+ = [0+] 9 [1+] 9 [2+] 9 [3+] 1 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 1.31272 [1+] 1.31272 [2+] 1.31272 [3+] 0.145858 [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.