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/muparserx-4.0.8+dfsg/doc/custom/calc.cpp Examining data/muparserx-4.0.8+dfsg/doc/custom/list_expr_var.cpp Examining data/muparserx-4.0.8+dfsg/doc/custom/listvar.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpCompat.h Examining data/muparserx-4.0.8+dfsg/parser/mpDefines.h Examining data/muparserx-4.0.8+dfsg/parser/mpError.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpError.h Examining data/muparserx-4.0.8+dfsg/parser/mpFuncCmplx.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpFuncCmplx.h Examining data/muparserx-4.0.8+dfsg/parser/mpFuncCommon.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpFuncCommon.h Examining data/muparserx-4.0.8+dfsg/parser/mpFuncMatrix.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpFuncMatrix.h Examining data/muparserx-4.0.8+dfsg/parser/mpFuncNonCmplx.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpFuncNonCmplx.h Examining data/muparserx-4.0.8+dfsg/parser/mpFuncStr.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpFuncStr.h Examining data/muparserx-4.0.8+dfsg/parser/mpFwdDecl.h Examining data/muparserx-4.0.8+dfsg/parser/mpICallback.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpICallback.h Examining data/muparserx-4.0.8+dfsg/parser/mpIOprt.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpIOprt.h Examining data/muparserx-4.0.8+dfsg/parser/mpIPackage.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpIPackage.h Examining data/muparserx-4.0.8+dfsg/parser/mpIPrecedence.h Examining data/muparserx-4.0.8+dfsg/parser/mpIToken.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpIToken.h Examining data/muparserx-4.0.8+dfsg/parser/mpIValReader.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpIValReader.h Examining data/muparserx-4.0.8+dfsg/parser/mpIValue.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpIValue.h Examining data/muparserx-4.0.8+dfsg/parser/mpIfThenElse.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpIfThenElse.h Examining data/muparserx-4.0.8+dfsg/parser/mpMatrix.h Examining data/muparserx-4.0.8+dfsg/parser/mpMatrixError.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtBinAssign.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtBinAssign.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtBinCommon.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtBinCommon.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtCmplx.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtCmplx.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtIndex.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtIndex.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtMatrix.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtMatrix.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtNonCmplx.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtNonCmplx.h Examining data/muparserx-4.0.8+dfsg/parser/mpOprtPostfixCommon.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpOprtPostfixCommon.h Examining data/muparserx-4.0.8+dfsg/parser/mpPackageCmplx.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpPackageCmplx.h Examining data/muparserx-4.0.8+dfsg/parser/mpPackageCommon.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpPackageCommon.h Examining data/muparserx-4.0.8+dfsg/parser/mpPackageMatrix.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpPackageMatrix.h Examining data/muparserx-4.0.8+dfsg/parser/mpPackageNonCmplx.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpPackageNonCmplx.h Examining data/muparserx-4.0.8+dfsg/parser/mpPackageStr.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpPackageStr.h Examining data/muparserx-4.0.8+dfsg/parser/mpPackageUnit.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpPackageUnit.h Examining data/muparserx-4.0.8+dfsg/parser/mpParser.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpParser.h Examining data/muparserx-4.0.8+dfsg/parser/mpParserBase.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpParserBase.h Examining data/muparserx-4.0.8+dfsg/parser/mpParserMessageProvider.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpParserMessageProvider.h Examining data/muparserx-4.0.8+dfsg/parser/mpRPN.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpRPN.h Examining data/muparserx-4.0.8+dfsg/parser/mpScriptTokens.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpScriptTokens.h Examining data/muparserx-4.0.8+dfsg/parser/mpStack.h Examining data/muparserx-4.0.8+dfsg/parser/mpTest.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpTest.h Examining data/muparserx-4.0.8+dfsg/parser/mpTokenReader.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpTokenReader.h Examining data/muparserx-4.0.8+dfsg/parser/mpTypes.h Examining data/muparserx-4.0.8+dfsg/parser/mpValReader.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpValReader.h Examining data/muparserx-4.0.8+dfsg/parser/mpValue.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpValue.h Examining data/muparserx-4.0.8+dfsg/parser/mpValueCache.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpValueCache.h Examining data/muparserx-4.0.8+dfsg/parser/mpVariable.cpp Examining data/muparserx-4.0.8+dfsg/parser/mpVariable.h Examining data/muparserx-4.0.8+dfsg/parser/suSortPred.h Examining data/muparserx-4.0.8+dfsg/parser/suStringTokens.h Examining data/muparserx-4.0.8+dfsg/parser/utGeneric.h Examining data/muparserx-4.0.8+dfsg/sample/example.cpp Examining data/muparserx-4.0.8+dfsg/sample/timer.cpp Examining data/muparserx-4.0.8+dfsg/sample/timer.h FINAL RESULTS: data/muparserx-4.0.8+dfsg/doc/custom/calc.cpp:6:3: [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 line[100]; data/muparserx-4.0.8+dfsg/sample/example.cpp:256: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 outstr[200]; data/muparserx-4.0.8+dfsg/sample/example.cpp:318:19: [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 *pFile = fopen(outstr, "w"); data/muparserx-4.0.8+dfsg/parser/mpTest.cpp:1797:10: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while (!getchar()); ANALYSIS SUMMARY: Hits = 4 Lines analyzed = 18848 in approximately 0.52 seconds (36205 lines/second) Physical Source Lines of Code (SLOC) = 10591 Hits@level = [0] 15 [1] 1 [2] 3 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 19 [1+] 4 [2+] 3 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 1.79398 [1+] 0.377679 [2+] 0.283259 [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.