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/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp Examining data/maffilter-1.3.1+dfsg/MafFilter/OutputAsFeaturesMafIterator.cpp Examining data/maffilter-1.3.1+dfsg/MafFilter/OutputAsFeaturesMafIterator.h Examining data/maffilter-1.3.1+dfsg/MafFilter/SystemCallMafIterator.cpp Examining data/maffilter-1.3.1+dfsg/MafFilter/SystemCallMafIterator.h Examining data/maffilter-1.3.1+dfsg/MafFilter/TreeBuildingSystemCallMafIterator.cpp Examining data/maffilter-1.3.1+dfsg/MafFilter/TreeBuildingSystemCallMafIterator.h FINAL RESULTS: data/maffilter-1.3.1+dfsg/MafFilter/SystemCallMafIterator.cpp:62:12: [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. int rc = system(call_.c_str()); data/maffilter-1.3.1+dfsg/MafFilter/TreeBuildingSystemCallMafIterator.cpp:67:12: [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. int rc = system(call_.c_str()); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:203:43: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ISequenceStream* seqStream = reader.read(inputFormat); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1221:59: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unique_ptr<SubstitutionModel> model(modelReader.read(&AlphabetTools::DNA_ALPHABET, modelDesc, 0, true)); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1223:62: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unique_ptr<DiscreteDistribution> rdist(rdistReader.read(rdistDesc, true)); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1300:42: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). OAlignment* alnWriter(bppoWriter.read(programInputFormat)); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1305:38: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ITree* treeReader(bppoReader.read(programOutputFormat)); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1410:39: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). OAlignment* oAln = bppoWriter.read(description); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1851:42: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). OAlignment* alnWriter(bppoWriter.read(programInputFormat)); data/maffilter-1.3.1+dfsg/MafFilter/MafFilter.cpp:1856:42: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). IAlignment* alnReader(bppoReader.read(programOutputFormat)); data/maffilter-1.3.1+dfsg/MafFilter/TreeBuildingSystemCallMafIterator.cpp:71:42: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). unique_ptr< Tree > result(treeReader_->read(outputFile_)); ANALYSIS SUMMARY: Hits = 11 Lines analyzed = 2468 in approximately 0.09 seconds (26146 lines/second) Physical Source Lines of Code (SLOC) = 1712 Hits@level = [0] 0 [1] 9 [2] 0 [3] 0 [4] 2 [5] 0 Hits@level+ = [0+] 11 [1+] 11 [2+] 2 [3+] 2 [4+] 2 [5+] 0 Hits/KSLOC@level+ = [0+] 6.42523 [1+] 6.42523 [2+] 1.16822 [3+] 1.16822 [4+] 1.16822 [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.