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/scrm-1.7.3/src/contemporaries_container.h Examining data/scrm-1.7.3/src/event.h Examining data/scrm-1.7.3/src/forest-debug.cc Examining data/scrm-1.7.3/src/forest.cc Examining data/scrm-1.7.3/src/forest.h Examining data/scrm-1.7.3/src/macros.h Examining data/scrm-1.7.3/src/model.cc Examining data/scrm-1.7.3/src/model.h Examining data/scrm-1.7.3/src/node.cc Examining data/scrm-1.7.3/src/node.h Examining data/scrm-1.7.3/src/node_container.cc Examining data/scrm-1.7.3/src/node_container.h Examining data/scrm-1.7.3/src/param.cc Examining data/scrm-1.7.3/src/param.h Examining data/scrm-1.7.3/src/random/constant_generator.cc Examining data/scrm-1.7.3/src/random/constant_generator.h Examining data/scrm-1.7.3/src/random/fastfunc.cc Examining data/scrm-1.7.3/src/random/fastfunc.h Examining data/scrm-1.7.3/src/random/mersenne_twister.cc Examining data/scrm-1.7.3/src/random/mersenne_twister.h Examining data/scrm-1.7.3/src/random/random_generator.cc Examining data/scrm-1.7.3/src/random/random_generator.h Examining data/scrm-1.7.3/src/random/speedtest.cc Examining data/scrm-1.7.3/src/scrm.cc Examining data/scrm-1.7.3/src/summary_statistics/frequency_spectrum.cc Examining data/scrm-1.7.3/src/summary_statistics/frequency_spectrum.h Examining data/scrm-1.7.3/src/summary_statistics/newick_tree.cc Examining data/scrm-1.7.3/src/summary_statistics/newick_tree.h Examining data/scrm-1.7.3/src/summary_statistics/oriented_forest.cc Examining data/scrm-1.7.3/src/summary_statistics/oriented_forest.h Examining data/scrm-1.7.3/src/summary_statistics/seg_sites.cc Examining data/scrm-1.7.3/src/summary_statistics/seg_sites.h Examining data/scrm-1.7.3/src/summary_statistics/summary_statistic.h Examining data/scrm-1.7.3/src/summary_statistics/tmrca.cc Examining data/scrm-1.7.3/src/summary_statistics/tmrca.h Examining data/scrm-1.7.3/src/time_interval.cc Examining data/scrm-1.7.3/src/time_interval.h Examining data/scrm-1.7.3/src/tree_point.cc Examining data/scrm-1.7.3/src/tree_point.h Examining data/scrm-1.7.3/tests/algorithmtest/test_algorithm.cc Examining data/scrm-1.7.3/tests/cppunit/test_runner.cc Examining data/scrm-1.7.3/tests/cppunit/test_template.cc Examining data/scrm-1.7.3/tests/manualtests/mysample_stats.c Examining data/scrm-1.7.3/tests/manualtests/tajd.c Examining data/scrm-1.7.3/tests/unittests/test_contemporaries_container.cc Examining data/scrm-1.7.3/tests/unittests/test_fastfunc.cc Examining data/scrm-1.7.3/tests/unittests/test_forest.cc Examining data/scrm-1.7.3/tests/unittests/test_model.cc Examining data/scrm-1.7.3/tests/unittests/test_node.cc Examining data/scrm-1.7.3/tests/unittests/test_node_container.cc Examining data/scrm-1.7.3/tests/unittests/test_param.cc Examining data/scrm-1.7.3/tests/unittests/test_random_generator.cc Examining data/scrm-1.7.3/tests/unittests/test_seg.cc Examining data/scrm-1.7.3/tests/unittests/test_summary_statistics.cc Examining data/scrm-1.7.3/tests/unittests/test_time_interval.cc FINAL RESULTS: data/scrm-1.7.3/tests/manualtests/mysample_stats.c:31:3: [4] (buffer) sscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. sscanf(line," %s %d %d", dum, &nsam, &howmany); data/scrm-1.7.3/tests/manualtests/mysample_stats.c:53:25: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). if( line[0] == '/' ) strcpy(slashline,line+2); data/scrm-1.7.3/tests/manualtests/mysample_stats.c:70:2: [4] (buffer) fscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. fscanf(pfin," %s", astr); data/scrm-1.7.3/tests/manualtests/mysample_stats.c:72:24: [4] (buffer) fscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. for( i=0; i<nsam;i++) fscanf(pfin," %s", list[i] ); data/scrm-1.7.3/tests/manualtests/mysample_stats.c:20: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 **list, **cmatrix(), allele,na, line[1001], slashline[1001] ; data/scrm-1.7.3/tests/manualtests/mysample_stats.c:21:13: [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 *pf, *fopen(), *pfin ; data/scrm-1.7.3/tests/manualtests/mysample_stats.c:25: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 dum[20], astr[100] ; data/scrm-1.7.3/tests/manualtests/mysample_stats.c:38:12: [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). nadv = atoi( argv[1] ) ; data/scrm-1.7.3/tests/manualtests/mysample_stats.c:120:23: [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. list[i] = (char *)realloc( list[i],maxsites*sizeof(char) ) ; ANALYSIS SUMMARY: Hits = 9 Lines analyzed = 12262 in approximately 0.36 seconds (33667 lines/second) Physical Source Lines of Code (SLOC) = 8198 Hits@level = [0] 10 [1] 0 [2] 5 [3] 0 [4] 4 [5] 0 Hits@level+ = [0+] 19 [1+] 9 [2+] 9 [3+] 4 [4+] 4 [5+] 0 Hits/KSLOC@level+ = [0+] 2.31764 [1+] 1.09783 [2+] 1.09783 [3+] 0.487924 [4+] 0.487924 [5+] 0 Dot directories skipped = 2 (--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.