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/libatomic-ops-7.6.10/src/atomic_ops.c Examining data/libatomic-ops-7.6.10/src/atomic_ops.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/ao_version.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/generalize-arithm.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/generalize-small.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/generalize.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/all_acquire_release_volatile.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/all_aligned_atomic_load_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/all_atomic_load_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/all_atomic_only_load.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/ao_t_is_int.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/armcc/arm_v6.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/emul_cas.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/aarch64.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/alpha.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/arm.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/avr32.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/cris.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/generic-arithm.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/generic-small.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/generic.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/hexagon.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/hppa.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/ia64.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/m68k.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/mips.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/powerpc.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/riscv.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/s390.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/sh.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/sparc.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/tile.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/gcc/x86.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/generic_pthread.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/hpc/hppa.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/hpc/ia64.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/ibmc/powerpc.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/icc/ia64.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/acquire_release_volatile.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/atomic_load.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/atomic_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/char_atomic_load.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/char_atomic_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/double_atomic_load_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/int_atomic_load.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/int_atomic_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/ordered_loads_only.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/ordered_stores_only.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/short_atomic_load.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/loadstore/short_atomic_store.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/msftc/arm.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/msftc/common32_defs.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/msftc/x86.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/msftc/x86_64.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/ordered.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/ordered_except_wr.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/read_ordered.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/standard_ao_double_t.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/sunc/sparc.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/sunc/x86.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/test_and_set_t_is_ao_t.h Examining data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/test_and_set_t_is_char.h Examining data/libatomic-ops-7.6.10/src/atomic_ops_malloc.c Examining data/libatomic-ops-7.6.10/src/atomic_ops_malloc.h Examining data/libatomic-ops-7.6.10/src/atomic_ops_stack.c Examining data/libatomic-ops-7.6.10/src/atomic_ops_stack.h Examining data/libatomic-ops-7.6.10/tests/run_parallel.h Examining data/libatomic-ops-7.6.10/tests/test_atomic.c Examining data/libatomic-ops-7.6.10/tests/test_malloc.c Examining data/libatomic-ops-7.6.10/tests/test_stack.c FINAL RESULTS: data/libatomic-ops-7.6.10/src/atomic_ops/sysdeps/standard_ao_double_t.h:79: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 dummy[sizeof(AO_double_t) == 2 * sizeof(AO_t) ? 1 : -1]; data/libatomic-ops-7.6.10/src/atomic_ops_malloc.c:81: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 AO_initial_heap[AO_INITIAL_HEAP_SIZE]; data/libatomic-ops-7.6.10/src/atomic_ops_malloc.c:144: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). zero_fd = open("/dev/zero", O_RDONLY); data/libatomic-ops-7.6.10/src/atomic_ops_malloc.c:269: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. static const unsigned char msbs[16] = { data/libatomic-ops-7.6.10/tests/test_malloc.c:233: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). nthreads = atoi(argv[1]); data/libatomic-ops-7.6.10/tests/test_stack.c:116: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. static char marks[MAX_NTHREADS * (MAX_NTHREADS + 1) / 2 + 1]; data/libatomic-ops-7.6.10/tests/test_stack.c:232: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). max_nthreads = atoi(argv[1]); ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 18795 in approximately 0.74 seconds (25405 lines/second) Physical Source Lines of Code (SLOC) = 13553 Hits@level = [0] 61 [1] 0 [2] 7 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 68 [1+] 7 [2+] 7 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 5.01734 [1+] 0.516491 [2+] 0.516491 [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.