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/progressivemauve-1.2.0+4713+dfsg/src/getOrthologList.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.h Examining data/progressivemauve-1.2.0+4713+dfsg/src/UniqueMatchFinder.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/projectAndStrip.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/RepeatHashCat.h Examining data/progressivemauve-1.2.0+4713+dfsg/src/SeedMatchEnumerator.h Examining data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone2.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/xmfa2maf.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/gappiness.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/bbBreakOnGenes.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/toGBKsequence.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/UniqueMatchFinder.h Examining data/progressivemauve-1.2.0+4713+dfsg/src/rootTrees.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/countInPlaceInversions.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/toEvoHighwayFormat.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/extractSubalignments.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/extractBCITrees.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/checkForLGT.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/multiToRawSequence.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/scoreAlignment.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/AlignmentTree.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage2.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/pairCompare.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/toRawSequence.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/makeBadgerMatrix.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/makeMc4Matrix.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/calculateCoverage.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/joinAlignmentFiles.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/coordinateTranslate.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/getAlignmentWindows.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/transposeCoordinates.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/mfa2xmfa.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/scoreALU.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/bbAnalyze.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/backbone_global_to_local.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/toGrimmFormat.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/uniqueMerCount.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/alignmentProjector.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/uniquifyTrees.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/toMultiFastA.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/mauveToXMFA.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/AlignmentTree.h Examining data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/sortContigs.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/scoreProcrastAlignment.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/multiEVD.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/addUnalignedIntervals.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/RepeatHashCat.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/MatchRecord.h Examining data/progressivemauve-1.2.0+4713+dfsg/src/createBackboneMFA.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/evd.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/bbFilter.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/stripGapColumns.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/unalign.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp Examining data/progressivemauve-1.2.0+4713+dfsg/src/repeatoire.cpp FINAL RESULTS: data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:248:16: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while( (opt = getopt_long( ac, av, short_args, long_opts, &indexptr )) != EOF ){ data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:337:16: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while( (opt = getopt_long( ac, av, "", mauve_options.getOptions(), &indexptr )) != EOF ){ data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:50:3: [3] (random) srand: 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. srand(atoi(argv[6])); data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:52:3: [3] (random) srand: 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. srand(time(NULL)); data/progressivemauve-1.2.0+4713+dfsg/src/alignmentProjector.cpp:34:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/alignmentProjector.cpp:40:10: [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). aln_out.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/alignmentProjector.cpp:63:26: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). projection.push_back( atoi( argv[i] ) ); data/progressivemauve-1.2.0+4713+dfsg/src/backbone_global_to_local.cpp:16: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). align_file.open(ARGV[1]); data/progressivemauve-1.2.0+4713+dfsg/src/backbone_global_to_local.cpp:23: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). backbone_file.open(ARGV[2]); data/progressivemauve-1.2.0+4713+dfsg/src/bbAnalyze.cpp:958:22: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int gff_seq_index = atoi( argv[5] ); data/progressivemauve-1.2.0+4713+dfsg/src/bbBreakOnGenes.cpp:238:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int min_bb_gap = atoi( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/bbBreakOnGenes.cpp:275:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 lend = atoi(buf.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/bbBreakOnGenes.cpp:278:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 rend = atoi(buf.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/bbBreakOnGenes.cpp:353: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). bb_output.open(output_fname.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/bbFilter.cpp:57:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int indie_dist = atoi( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/bbFilter.cpp:81:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). seqs.push_back(atoi(argv[i])); data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage.cpp:63:24: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 min_bb_length = atol( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage.cpp:64:25: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 max_gap_length = atol( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage.cpp:81: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). alignment_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage2.cpp:39:24: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 min_bb_length = atol( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage2.cpp:40:25: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 max_gap_length = atol( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/calculateBackboneCoverage2.cpp:45: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). alignment_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/calculateCoverage.cpp:61: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). alignment_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/evd.cpp:79:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int run_count = atoi( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBCITrees.cpp:206:30: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). boost::uint32_t prng_seed = atoi( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBCITrees.cpp:208:26: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). uint max_output_trees = atoi( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone.cpp:36:24: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 min_bb_length = atol( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone.cpp:37:25: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 max_gap_length = atol( argv[4] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone.cpp:49: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). alignment_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone2.cpp:35:24: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 min_bb_length = atol( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone2.cpp:36:25: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 max_gap_length = atol( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/extractBackbone2.cpp:40: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). alignment_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/getAlignmentWindows.cpp:40:24: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 window_length = atol( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/getAlignmentWindows.cpp:41:23: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 shift_length = atol( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/getAlignmentWindows.cpp:45: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). alignment_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/getOrthologList.cpp:81:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/getOrthologList.cpp:86:13: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). uint sgI = atoi( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/getOrthologList.cpp:99: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). bb_in.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/makeBadgerMatrix.cpp:37:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/makeBadgerMatrix.cpp:43: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). badger_out.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/makeBadgerMatrix.cpp:50: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). coord_out.open( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/makeMc4Matrix.cpp:35:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/makeMc4Matrix.cpp:41: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). badger_out.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:265:19: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). seed_size = atoi( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:282:18: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). LCB_size = atol( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:309:21: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). island_size = atoi( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:315:26: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). island_break_min = atoi( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:318:23: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). backbone_size = atoi( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:321:26: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). max_backbone_gap = atoi( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:339:37: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). max_gapped_alignment_length = atoi( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:342:26: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). min_r_gap_length = atol( optarg ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:369:31: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). realign_lcbs.push_back( atoi( optarg ) ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:383:28: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). permutation_weight = atol(optarg); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:389:33: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). opt_max_extension_iters = atoi(optarg); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:536: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). match_log_out.open( match_log.c_str(), ios::in | ios::out ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:551:19: [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). offset_log_out.open( offset_log.c_str(), ios::in | ios::out ); data/progressivemauve-1.2.0+4713+dfsg/src/mauveAligner.cpp:571: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). merge_log_in.open( merge_log.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/mfa2xmfa.cpp:46:11: [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). mfa_out.open( mfa_output_name.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/multiEVD.cpp:108:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int run_count = atoi( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/pairCompare.cpp:17:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int seq_count = atoi( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:197:42: [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. void getPatternText( int64 seed_pattern, char pattern[65] ) data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:199:2: [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 pat[65] = { data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:212:2: [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( pattern, pat + lastone, 65 - lastone ); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:219:2: [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 pattern[65]; data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:254:9: [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). bb_out.open(bb_fname.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:365:21: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). island_gap_size = atoi( opt_island_gap_size.arg_value.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:435:14: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). mer_size = atoi( opt_seed_weight.arg_value.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:526:4: [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 pattern[65]; data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:601:16: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int64 mgal = atol( opt_max_gapped_aligner_length.arg_value.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:670:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). pss.gap_open = atoi(opt_gap_open.arg_value.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/progressiveMauve.cpp:674:20: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). pss.gap_extend = atoi(opt_gap_open.arg_value.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/projectAndStrip.cpp:38:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/projectAndStrip.cpp:44:10: [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). aln_out.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/projectAndStrip.cpp:52:20: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). seq_ids[i - 3] = atoi(argv[i]); data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:40:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:45:20: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). uint gene_count = atoi( argv[4] ); data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:46:13: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). uint sgI = atoi( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:50:9: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). srand(atoi(argv[6])); data/progressivemauve-1.2.0+4713+dfsg/src/randomGeneSample.cpp:61: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). bb_in.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/repeatoire.cpp:1943: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). seed_out.open(seed_file.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/repeatoire.cpp:2487: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). stats_out_file.open( stat_file.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/repeatoire.cpp:2493:16: [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). aln_out_file.open( outputfile.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/repeatoire.cpp:2500: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). score_out_file.open( output2file.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/scoreALU.cpp:200:11: [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). align_in.open( alignment_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/scoreALU.cpp:206:9: [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). alu_in.open( alu_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/scoreALU.cpp:629:16: [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). boundary_file.open(alignment_fname.c_str()); data/progressivemauve-1.2.0+4713+dfsg/src/scoreAlignment.cpp:121: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). correct_in.open( correct_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/scoreAlignment.cpp:127:16: [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). calculated_in.open( calculated_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/scoreProcrastAlignment.cpp:419: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). correct_in.open( correct_aln_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/scoreProcrastAlignment.cpp:425: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). procrast_in.open( procrast_aln_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/sortContigs.cpp:32:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). uint ref_seqI = atoi( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp:35:9: [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). aln_in.open( argv[1] ); data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp:41: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). bbcols_in.open( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp:48:10: [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). aln_out.open( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp:56:22: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). min_block_length = atol(argv[4]); data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp:60:22: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). min_genome_count = atol(argv[5]); data/progressivemauve-1.2.0+4713+dfsg/src/stripSubsetLCBs.cpp:64:18: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). subsample_kb = atol(argv[6]); data/progressivemauve-1.2.0+4713+dfsg/src/toEvoHighwayFormat.cpp:49:16: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). uint ref_id = atoi( argv[2] ); data/progressivemauve-1.2.0+4713+dfsg/src/transposeCoordinates.cpp:44:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int trans_seq = atoi( argv[3] ); data/progressivemauve-1.2.0+4713+dfsg/src/unalign.cpp:25: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). alignment_in.open( input_fname.c_str() ); data/progressivemauve-1.2.0+4713+dfsg/src/unalign.cpp:32:10: [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). mfa_out.open( output_fname.c_str() ); ANALYSIS SUMMARY: Hits = 101 Lines analyzed = 13775 in approximately 0.38 seconds (36657 lines/second) Physical Source Lines of Code (SLOC) = 11045 Hits@level = [0] 0 [1] 0 [2] 97 [3] 4 [4] 0 [5] 0 Hits@level+ = [0+] 101 [1+] 101 [2+] 101 [3+] 4 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 9.14441 [1+] 9.14441 [2+] 9.14441 [3+] 0.362155 [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.