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/libodb-2.4.0/odb/transaction.cxx Examining data/libodb-2.4.0/odb/tracer.cxx Examining data/libodb-2.4.0/odb/statement-processing.cxx Examining data/libodb-2.4.0/odb/statement.cxx Examining data/libodb-2.4.0/odb/session.cxx Examining data/libodb-2.4.0/odb/section.cxx Examining data/libodb-2.4.0/odb/schema-catalog.cxx Examining data/libodb-2.4.0/odb/result.cxx Examining data/libodb-2.4.0/odb/query-dynamic.cxx Examining data/libodb-2.4.0/odb/prepared-query.cxx Examining data/libodb-2.4.0/odb/lazy-ptr-impl.cxx Examining data/libodb-2.4.0/odb/connection.cxx Examining data/libodb-2.4.0/odb/vector-impl.cxx Examining data/libodb-2.4.0/odb/database.cxx Examining data/libodb-2.4.0/odb/exceptions.cxx Examining data/libodb-2.4.0/odb/callback.cxx Examining data/libodb-2.4.0/odb/details/config-vc.h Examining data/libodb-2.4.0/odb/details/mutex.cxx Examining data/libodb-2.4.0/odb/details/lock.cxx Examining data/libodb-2.4.0/odb/details/condition.cxx Examining data/libodb-2.4.0/odb/details/buffer.cxx Examining data/libodb-2.4.0/odb/details/win32/dll.cxx Examining data/libodb-2.4.0/odb/details/win32/exceptions.cxx Examining data/libodb-2.4.0/odb/details/win32/thread.cxx Examining data/libodb-2.4.0/odb/details/win32/condition.cxx Examining data/libodb-2.4.0/odb/details/win32/tls.cxx Examining data/libodb-2.4.0/odb/details/win32/once.cxx Examining data/libodb-2.4.0/odb/details/win32/init.cxx Examining data/libodb-2.4.0/odb/details/shared-ptr/base.cxx Examining data/libodb-2.4.0/odb/details/posix/thread.cxx Examining data/libodb-2.4.0/odb/details/posix/exceptions.cxx FINAL RESULTS: data/libodb-2.4.0/odb/details/win32/once.cxx:18:7: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. InitializeCriticalSection (&win32_once_cs_); data/libodb-2.4.0/odb/details/win32/tls.cxx:62:7: [3] (misc) InitializeCriticalSection: Exceptions can be thrown in low-memory situations. Use InitializeCriticalSectionAndSpinCount instead. InitializeCriticalSection (&cs_); data/libodb-2.4.0/odb/details/buffer.cxx:26:13: [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 (d, data_, data_size); data/libodb-2.4.0/odb/details/win32/tls.cxx:141:9: [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 (pd->dtors, proc_data_->dtors, n * sizeof (dtor_func)); data/libodb-2.4.0/odb/details/win32/tls.cxx:225:11: [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 (nd->entries, d->entries, sizeof (entry) * on); data/libodb-2.4.0/odb/vector-impl.cxx:28:7: [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 (data_, x.data_, x.size_ / 4 + (x.size_ % 4 == 0 ? 0 : 1)); data/libodb-2.4.0/odb/vector-impl.cxx:47:9: [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 (d, data_, size_ / 4 + (size_ % 4 == 0 ? 0 : 1)); ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 3558 in approximately 0.10 seconds (34197 lines/second) Physical Source Lines of Code (SLOC) = 2528 Hits@level = [0] 0 [1] 0 [2] 5 [3] 2 [4] 0 [5] 0 Hits@level+ = [0+] 7 [1+] 7 [2+] 7 [3+] 2 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 2.76899 [1+] 2.76899 [2+] 2.76899 [3+] 0.791139 [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.