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/kross-interpreters-20.04.3/java/test/testobject.cpp Examining data/kross-interpreters-20.04.3/java/test/testwindow.cpp Examining data/kross-interpreters-20.04.3/java/test/testwindow.h Examining data/kross-interpreters-20.04.3/java/test/testobject.h Examining data/kross-interpreters-20.04.3/java/test/main.cpp Examining data/kross-interpreters-20.04.3/java/krossjava/jvmexception.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmfunction.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmclasswriter.cpp Examining data/kross-interpreters-20.04.3/java/krossjava/jvminterpreter.cpp Examining data/kross-interpreters-20.04.3/java/krossjava/jvmvariant.cpp Examining data/kross-interpreters-20.04.3/java/krossjava/jvmextension.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmclasswriter.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmscript.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmconfig.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmextension.cpp Examining data/kross-interpreters-20.04.3/java/krossjava/jvmvariant.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvminterpreter.h Examining data/kross-interpreters-20.04.3/java/krossjava/jvmscript.cpp Examining data/kross-interpreters-20.04.3/tests/testobject.cpp Examining data/kross-interpreters-20.04.3/tests/testobject.h Examining data/kross-interpreters-20.04.3/tests/main.cpp Examining data/kross-interpreters-20.04.3/ruby/rubyinterpreter.cpp Examining data/kross-interpreters-20.04.3/ruby/rubyvariant.cpp Examining data/kross-interpreters-20.04.3/ruby/rubyconfig.h Examining data/kross-interpreters-20.04.3/ruby/rubyobject.cpp Examining data/kross-interpreters-20.04.3/ruby/rubycallcache.cpp Examining data/kross-interpreters-20.04.3/ruby/rubyinterpreter.h Examining data/kross-interpreters-20.04.3/ruby/rubyscript.cpp Examining data/kross-interpreters-20.04.3/ruby/rubycallcache.h Examining data/kross-interpreters-20.04.3/ruby/rubyextension.cpp Examining data/kross-interpreters-20.04.3/ruby/rubymodule.h Examining data/kross-interpreters-20.04.3/ruby/rubyobject.h Examining data/kross-interpreters-20.04.3/ruby/rubyfunction.h Examining data/kross-interpreters-20.04.3/ruby/rubyscript.h Examining data/kross-interpreters-20.04.3/ruby/rubyvariant.h Examining data/kross-interpreters-20.04.3/ruby/rubyextension.h Examining data/kross-interpreters-20.04.3/ruby/rubymodule.cpp Examining data/kross-interpreters-20.04.3/python/pythonvariant.cpp Examining data/kross-interpreters-20.04.3/python/cxx/CXX/WrapPython.h Examining data/kross-interpreters-20.04.3/python/cxx/Src/cxx_exceptions.cxx Examining data/kross-interpreters-20.04.3/python/cxx/Src/cxxextensions.c Examining data/kross-interpreters-20.04.3/python/cxx/Src/cxx_extensions.cxx Examining data/kross-interpreters-20.04.3/python/cxx/Src/IndirectPythonInterface.cxx Examining data/kross-interpreters-20.04.3/python/cxx/Src/cxxsupport.cxx Examining data/kross-interpreters-20.04.3/python/cxx/Src/Python2/cxx_exceptions.cxx Examining data/kross-interpreters-20.04.3/python/cxx/Src/Python2/cxxextensions.c Examining data/kross-interpreters-20.04.3/python/cxx/Src/Python2/cxx_extensions.cxx Examining data/kross-interpreters-20.04.3/python/cxx/Src/Python2/cxxsupport.cxx Examining data/kross-interpreters-20.04.3/python/pythonobject.h Examining data/kross-interpreters-20.04.3/python/pythonmodule.cpp Examining data/kross-interpreters-20.04.3/python/pythoninterpreter.cpp Examining data/kross-interpreters-20.04.3/python/pythonfunction.h Examining data/kross-interpreters-20.04.3/python/pythoninterpreter.h Examining data/kross-interpreters-20.04.3/python/pythonmodule.h Examining data/kross-interpreters-20.04.3/python/pythonobject.cpp Examining data/kross-interpreters-20.04.3/python/pythonconfig.h Examining data/kross-interpreters-20.04.3/python/pythonextension.h Examining data/kross-interpreters-20.04.3/python/pythonscript.cpp Examining data/kross-interpreters-20.04.3/python/pythonextension.cpp Examining data/kross-interpreters-20.04.3/python/pythonvariant.h Examining data/kross-interpreters-20.04.3/python/pythonscript.h Examining data/kross-interpreters-20.04.3/falcon/falconkrossobject.h Examining data/kross-interpreters-20.04.3/falcon/falconobjman.cpp Examining data/kross-interpreters-20.04.3/falcon/falconscript.h Examining data/kross-interpreters-20.04.3/falcon/falconscript.cpp Examining data/kross-interpreters-20.04.3/falcon/falconkopaque.h Examining data/kross-interpreters-20.04.3/falcon/falconkfvm.h Examining data/kross-interpreters-20.04.3/falcon/falconmodule.h Examining data/kross-interpreters-20.04.3/falcon/falconinterpreter.h Examining data/kross-interpreters-20.04.3/falcon/falconkross.h Examining data/kross-interpreters-20.04.3/falcon/falconerrhand.h Examining data/kross-interpreters-20.04.3/falcon/tests/helloworld/mainwindow.h Examining data/kross-interpreters-20.04.3/falcon/tests/helloworld/mainwindow.cpp Examining data/kross-interpreters-20.04.3/falcon/tests/helloworld/main.cpp Examining data/kross-interpreters-20.04.3/falcon/falconconfig.h Examining data/kross-interpreters-20.04.3/falcon/falconkerror.h Examining data/kross-interpreters-20.04.3/falcon/falconmodule.cpp Examining data/kross-interpreters-20.04.3/falcon/falconobjman.h Examining data/kross-interpreters-20.04.3/falcon/metatypeflex.h Examining data/kross-interpreters-20.04.3/falcon/falconkfvm.cpp Examining data/kross-interpreters-20.04.3/falcon/falconinterpreter.cpp Examining data/kross-interpreters-20.04.3/falcon/falconfunction.cpp Examining data/kross-interpreters-20.04.3/falcon/falconfunction.h Examining data/kross-interpreters-20.04.3/falcon/falconkopaque.cpp Examining data/kross-interpreters-20.04.3/falcon/metatypeflex.cpp Examining data/kross-interpreters-20.04.3/falcon/falconerrhand.cpp Examining data/kross-interpreters-20.04.3/falcon/falconkrossobject.cpp Examining data/kross-interpreters-20.04.3/falcon/falconkross.cpp Examining data/kross-interpreters-20.04.3/falcon/falconkerror.cpp FINAL RESULTS: data/kross-interpreters-20.04.3/python/cxx/Src/IndirectPythonInterface.cxx:213:5: [4] (format) _snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. _snprintf( python_dll_name, sizeof(python_dll_name_format) / sizeof(char) - 1, python_dll_name_format, PY_MAJOR_VERSION, PY_MINOR_VERSION ); data/kross-interpreters-20.04.3/java/krossjava/jvmvariant.h:65:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&pointer, &qobj, sizeof(qobj)); data/kross-interpreters-20.04.3/python/cxx/Src/IndirectPythonInterface.cxx:211:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char python_dll_name[sizeof(python_dll_name_format)]; data/kross-interpreters-20.04.3/tests/main.cpp:67: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 (! f.open(QIODevice::ReadOnly)) { data/kross-interpreters-20.04.3/falcon/falconkfvm.cpp:1598:31: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). QVariant qvariant = prop->read ( ptr->data() ); data/kross-interpreters-20.04.3/python/pythonextension.cpp:235:59: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return PythonType<QVariant>::toPyObject( property.read(d->object) ); data/kross-interpreters-20.04.3/ruby/rubyextension.cpp:482:58: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). return RubyType<QVariant>::toVALUE( property.read(extension->d->m_object) ); ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 19537 in approximately 2.14 seconds (9134 lines/second) Physical Source Lines of Code (SLOC) = 12252 Hits@level = [0] 6 [1] 3 [2] 3 [3] 0 [4] 1 [5] 0 Hits@level+ = [0+] 13 [1+] 7 [2+] 4 [3+] 1 [4+] 1 [5+] 0 Hits/KSLOC@level+ = [0+] 1.06105 [1+] 0.571335 [2+] 0.326477 [3+] 0.0816193 [4+] 0.0816193 [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.