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/libips4o-0.0+git20190618.2206938/ips4o.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/base_case.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/bucket_pointers.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/buffers.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/classifier.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/cleanup_margins.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/config.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/empty_block_movement.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/ips4o.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/ips4o_fwd.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/local_classification.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/memory.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/parallel.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/partitioning.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/sampling.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/sequential.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/synchronization.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/thread_pool.hpp Examining data/libips4o-0.0+git20190618.2206938/ips4o/utils.hpp FINAL RESULTS: data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:68:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). diff_t write, read; data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:69:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::tie(write, read) = bp.template decRead<kIsParallel>(); data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:71:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (read < write) { data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:78:38: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). local_.swap[0].readFrom(begin_ + read); data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:91:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). diff_t write, read; data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:95:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). std::tie(write, read) = bp.template incWrite<kIsParallel>(); data/libips4o-0.0+git20190618.2206938/ips4o/block_permutation.hpp:96:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (write > read) { ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 3210 in approximately 0.25 seconds (12784 lines/second) Physical Source Lines of Code (SLOC) = 1640 Hits@level = [0] 0 [1] 7 [2] 0 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 7 [1+] 7 [2+] 0 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 4.26829 [1+] 4.26829 [2+] 0 [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.