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/libccd-2.1/src/testsuites/mpr_boxbox.c Examining data/libccd-2.1/src/testsuites/common.h Examining data/libccd-2.1/src/testsuites/boxbox.h Examining data/libccd-2.1/src/testsuites/support.h Examining data/libccd-2.1/src/testsuites/support.c Examining data/libccd-2.1/src/testsuites/boxcyl.c Examining data/libccd-2.1/src/testsuites/spheresphere.h Examining data/libccd-2.1/src/testsuites/mpr_boxcyl.c Examining data/libccd-2.1/src/testsuites/vec3.c Examining data/libccd-2.1/src/testsuites/polytope.h Examining data/libccd-2.1/src/testsuites/boxbox.c Examining data/libccd-2.1/src/testsuites/spheresphere.c Examining data/libccd-2.1/src/testsuites/polytope.c Examining data/libccd-2.1/src/testsuites/mpr_cylcyl.h Examining data/libccd-2.1/src/testsuites/vec3.h Examining data/libccd-2.1/src/testsuites/boxcyl.h Examining data/libccd-2.1/src/testsuites/mpr_boxbox.h Examining data/libccd-2.1/src/testsuites/common.c Examining data/libccd-2.1/src/testsuites/cu/cu.c Examining data/libccd-2.1/src/testsuites/cu/cu.h Examining data/libccd-2.1/src/testsuites/cylcyl.h Examining data/libccd-2.1/src/testsuites/bench2.c Examining data/libccd-2.1/src/testsuites/cylcyl.c Examining data/libccd-2.1/src/testsuites/bench.c Examining data/libccd-2.1/src/testsuites/main.c Examining data/libccd-2.1/src/testsuites/mpr_boxcyl.h Examining data/libccd-2.1/src/testsuites/mpr_cylcyl.c Examining data/libccd-2.1/src/ccd.c Examining data/libccd-2.1/src/list.h Examining data/libccd-2.1/src/ccd/quat.h Examining data/libccd-2.1/src/ccd/compiler.h Examining data/libccd-2.1/src/ccd/ccd_export.h Examining data/libccd-2.1/src/ccd/vec3.h Examining data/libccd-2.1/src/ccd/ccd.h Examining data/libccd-2.1/src/support.h Examining data/libccd-2.1/src/simplex.h Examining data/libccd-2.1/src/support.c Examining data/libccd-2.1/src/dbg.h Examining data/libccd-2.1/src/mpr.c Examining data/libccd-2.1/src/vec3.c Examining data/libccd-2.1/src/polytope.h Examining data/libccd-2.1/src/polytope.c Examining data/libccd-2.1/src/alloc.h FINAL RESULTS: data/libccd-2.1/src/dbg.h:37:5: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, DBG_PROLOGUE "%s :: " format "\n", __func__, ## __VA_ARGS__); \ data/libccd-2.1/src/dbg.h:42:5: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, DBG_PROLOGUE "%s :: " str "\n", __func__); \ data/libccd-2.1/src/dbg.h:47:5: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr, DBG_PROLOGUE "%s :: %s[%lf %lf %lf]\n", \ data/libccd-2.1/src/testsuites/common.c:154:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(oname, "%s o1", name); data/libccd-2.1/src/testsuites/common.c:159:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(oname, "%s o1", name); data/libccd-2.1/src/polytope.c:257:12: [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). fout = fopen(fn, "a"); data/libccd-2.1/src/testsuites/bench.c:245: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). cycles = atol(argv[1]); data/libccd-2.1/src/testsuites/bench2.c:251: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). cycles = atol(argv[1]); data/libccd-2.1/src/testsuites/common.c:134: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 oname[500]; data/libccd-2.1/src/testsuites/cu/cu.c:42:1: [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 cu_out_prefix[CU_OUT_PREFIX_LENGTH+1] = ""; data/libccd-2.1/src/testsuites/cu/cu.c:189: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 buffer[MSGBUF_LEN]; data/libccd-2.1/src/testsuites/cu/cu.c:235: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 buf[BUF_LEN]; /* buffer */ data/libccd-2.1/src/testsuites/cu/cu.c:237: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 bufout[MSGBUF_LEN]; /* buffer which can be printed out */ data/libccd-2.1/src/testsuites/cu/cu.c:298: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 buf[MSGBUF_LEN]; data/libccd-2.1/src/testsuites/cu/cu.c:335: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 buf[100]; data/libccd-2.1/src/testsuites/cu/cu.h:132:8: [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. extern char cu_out_prefix[CU_OUT_PREFIX_LENGTH+1]; data/libccd-2.1/src/testsuites/cu/cu.c:244:22: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while((buf_len = read(fd, buf, BUF_LEN)) > 0 && !end){ data/libccd-2.1/src/testsuites/cu/cu.c:330:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cu_out_prefix, str, CU_OUT_PREFIX_LENGTH); ANALYSIS SUMMARY: Hits = 18 Lines analyzed = 7768 in approximately 0.21 seconds (36801 lines/second) Physical Source Lines of Code (SLOC) = 5296 Hits@level = [0] 112 [1] 2 [2] 11 [3] 0 [4] 5 [5] 0 Hits@level+ = [0+] 130 [1+] 18 [2+] 16 [3+] 5 [4+] 5 [5+] 0 Hits/KSLOC@level+ = [0+] 24.5468 [1+] 3.39879 [2+] 3.02115 [3+] 0.944109 [4+] 0.944109 [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.