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/libfwnt-20181227/common/config_msc.h
Examining data/libfwnt-20181227/common/byte_stream.h
Examining data/libfwnt-20181227/common/common.h
Examining data/libfwnt-20181227/common/system_string.h
Examining data/libfwnt-20181227/common/types.h
Examining data/libfwnt-20181227/common/config_winapi.h
Examining data/libfwnt-20181227/common/memory.h
Examining data/libfwnt-20181227/common/config.h
Examining data/libfwnt-20181227/common/narrow_string.h
Examining data/libfwnt-20181227/common/file_stream.h
Examining data/libfwnt-20181227/common/config_borlandc.h
Examining data/libfwnt-20181227/common/wide_string.h
Examining data/libfwnt-20181227/tests/fwnt_test_security_identifier.c
Examining data/libfwnt-20181227/tests/fwnt_test_memory.h
Examining data/libfwnt-20181227/tests/fwnt_test_support.c
Examining data/libfwnt-20181227/tests/fwnt_test_libcnotify.h
Examining data/libfwnt-20181227/tests/fwnt_test_access_control_list.c
Examining data/libfwnt-20181227/tests/fwnt_test_security_descriptor.c
Examining data/libfwnt-20181227/tests/fwnt_test_error.c
Examining data/libfwnt-20181227/tests/fwnt_test_lznt1.c
Examining data/libfwnt-20181227/tests/fwnt_test_macros.h
Examining data/libfwnt-20181227/tests/fwnt_test_unused.h
Examining data/libfwnt-20181227/tests/fwnt_test_lzxpress.c
Examining data/libfwnt-20181227/tests/fwnt_test_libfwnt.h
Examining data/libfwnt-20181227/tests/fwnt_test_access_control_entry.c
Examining data/libfwnt-20181227/tests/fwnt_test_libcerror.h
Examining data/libfwnt-20181227/tests/fwnt_test_memory.c
Examining data/libfwnt-20181227/include/libfwnt/extern.h
Examining data/libfwnt-20181227/include/libfwnt/types.h
Examining data/libfwnt-20181227/include/libfwnt/features.h
Examining data/libfwnt-20181227/include/libfwnt/definitions.h
Examining data/libfwnt-20181227/include/libfwnt/error.h
Examining data/libfwnt-20181227/include/libfwnt.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_debug.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_bit_stream.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_lznt1.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_libcerror.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_unused.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_support.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_lzxpress.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_lznt1.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_locale_identifier.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_libcdata.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_definitions.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_types.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_access_control_list.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_locale_identifier.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_extern.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_support.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_security_descriptor.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_libcnotify.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_security_identifier.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_access_control_list.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_lzxpress.c
Examining data/libfwnt-20181227/libfwnt/libfwnt.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_access_control_entry.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_security_descriptor.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_error.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_security_identifier.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_error.c
Examining data/libfwnt-20181227/libfwnt/libfwnt_bit_stream.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_access_control_entry.h
Examining data/libfwnt-20181227/libfwnt/libfwnt_debug.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_thread_pool.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_thread_pool.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_repeating_thread.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_error.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_unused.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_condition.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_definitions.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_thread.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_repeating_thread.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_mutex.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_support.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_thread.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_mutex.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_types.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_lock.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_extern.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_error.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_queue.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_condition.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_thread_attributes.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_libcerror.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_lock.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_support.c
Examining data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_thread_attributes.h
Examining data/libfwnt-20181227/libcthreads/libcthreads_queue.h
Examining data/libfwnt-20181227/libcerror/libcerror_system.c
Examining data/libfwnt-20181227/libcerror/libcerror_error.c
Examining data/libfwnt-20181227/libcerror/libcerror_extern.h
Examining data/libfwnt-20181227/libcerror/libcerror_error.h
Examining data/libfwnt-20181227/libcerror/libcerror_support.h
Examining data/libfwnt-20181227/libcerror/libcerror_types.h
Examining data/libfwnt-20181227/libcerror/libcerror_definitions.h
Examining data/libfwnt-20181227/libcerror/libcerror_unused.h
Examining data/libfwnt-20181227/libcerror/libcerror_support.c
Examining data/libfwnt-20181227/libcerror/libcerror_system.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_libcerror.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_unused.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_support.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_support.c
Examining data/libfwnt-20181227/libcnotify/libcnotify_print.c
Examining data/libfwnt-20181227/libcnotify/libcnotify_verbose.c
Examining data/libfwnt-20181227/libcnotify/libcnotify_stream.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_extern.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_stream.c
Examining data/libfwnt-20181227/libcnotify/libcnotify_print.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_verbose.h
Examining data/libfwnt-20181227/libcnotify/libcnotify_definitions.h
Examining data/libfwnt-20181227/libcdata/libcdata_array.c
Examining data/libfwnt-20181227/libcdata/libcdata_tree_node.c
Examining data/libfwnt-20181227/libcdata/libcdata_libcthreads.h
Examining data/libfwnt-20181227/libcdata/libcdata_range_list_value.h
Examining data/libfwnt-20181227/libcdata/libcdata_unused.h
Examining data/libfwnt-20181227/libcdata/libcdata_range_list.h
Examining data/libfwnt-20181227/libcdata/libcdata_range_list.c
Examining data/libfwnt-20181227/libcdata/libcdata_extern.h
Examining data/libfwnt-20181227/libcdata/libcdata_support.c
Examining data/libfwnt-20181227/libcdata/libcdata_list_element.h
Examining data/libfwnt-20181227/libcdata/libcdata_range_list_value.c
Examining data/libfwnt-20181227/libcdata/libcdata_libcerror.h
Examining data/libfwnt-20181227/libcdata/libcdata_error.c
Examining data/libfwnt-20181227/libcdata/libcdata_error.h
Examining data/libfwnt-20181227/libcdata/libcdata_support.h
Examining data/libfwnt-20181227/libcdata/libcdata_list.c
Examining data/libfwnt-20181227/libcdata/libcdata_tree_node.h
Examining data/libfwnt-20181227/libcdata/libcdata_list.h
Examining data/libfwnt-20181227/libcdata/libcdata_types.h
Examining data/libfwnt-20181227/libcdata/libcdata_list_element.c
Examining data/libfwnt-20181227/libcdata/libcdata_array.h
Examining data/libfwnt-20181227/libcdata/libcdata_btree.h
Examining data/libfwnt-20181227/libcdata/libcdata_definitions.h
Examining data/libfwnt-20181227/libcdata/libcdata_btree.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_error.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_integer.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_list.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_python.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_integer.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_entries.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_entry.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_entry.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_types.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_libfwnt.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_unused.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_list.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_types.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_security_descriptor.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_security_identifier.c
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_access_control_entries.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_libcerror.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_security_identifier.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_error.h
Examining data/libfwnt-20181227/pyfwnt/pyfwnt_security_descriptor.h

FINAL RESULTS:

data/libfwnt-20181227/common/file_stream.h:139:2:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	vfprintf
data/libfwnt-20181227/common/file_stream.h:143:2:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	vfprintf( stream, format, __VA_ARGS__ )
data/libfwnt-20181227/common/narrow_string.h:148:2:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	snprintf
data/libfwnt-20181227/common/narrow_string.h:152:2:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	snprintf( target, size, __VA_ARGS__ )
data/libfwnt-20181227/common/narrow_string.h:159:2:  [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
data/libfwnt-20181227/common/narrow_string.h:163:2:  [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. If the scanf format is influenceable by an
  attacker, it's exploitable.
	sscanf( string, format, __VA_ARGS__ )
data/libfwnt-20181227/common/narrow_string.h:174:2:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	vsnprintf
data/libfwnt-20181227/common/narrow_string.h:178:2:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
	vsnprintf( string, size, format, __VA_ARGS__ )
data/libfwnt-20181227/common/system_string.h:37:25:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
#error Unsupported wide system character size
data/libfwnt-20181227/common/wide_string.h:151:2:  [4] (format) swprintf:
  Potential format string problem (CWE-134). Make format string constant.
	swprintf( target, size, __VA_ARGS__ )
data/libfwnt-20181227/common/wide_string.h:166:2:  [4] (format) vswprintf:
  Potential format string problem (CWE-134). Make format string constant.
	vswprintf( string, size, format, __VA_ARGS__ )
data/libfwnt-20181227/include/libfwnt/types.h:94:16:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
#error Missing system type definitions (sys/types.h)
data/libfwnt-20181227/libcerror/libcerror_error.c:526:17:  [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.
		print_count = fprintf(
data/libfwnt-20181227/libcerror/libcerror_error.c:681:18:  [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.
			print_count = fprintf(
data/libfwnt-20181227/libcerror/libcerror_system.c:338:32:  [4] (shell) system:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
#error Missing error to string system function
data/libfwnt-20181227/libcerror/libcerror_system.c:91:19:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
	library_handle = LoadLibrary(
data/libfwnt-20181227/libcerror/libcerror_system.c:144:19:  [3] (misc) LoadLibrary:
  Ensure that the full path to the library is specified, or current directory
  may be used (CWE-829, CWE-20). Use registry entry or GetWindowsDirectory to
  find library path, if you aren't already.
	library_handle = LoadLibrary(
data/libfwnt-20181227/libcthreads/libcthreads_condition.c:119:2:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
	InitializeCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_condition.c:377:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_condition.c:497:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_condition.c:622:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_condition.c:650:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_lock.c:107:2:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
	InitializeCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_lock.c:268:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_mutex.c:114:2:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
	InitializeCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_mutex.c:294:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c:118:2:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
	InitializeCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c:121:2:  [3] (misc) InitializeCriticalSection:
  Exceptions can be thrown in low-memory situations. Use
  InitializeCriticalSectionAndSpinCount instead.
	InitializeCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c:346:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c:349:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c:472:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.c:570:2:  [3] (misc) EnterCriticalSection:
  On some versions of Windows, exceptions can be thrown in low-memory
  situations. Use InitializeCriticalSectionAndSpinCount instead.
	EnterCriticalSection(
data/libfwnt-20181227/common/file_stream.h:62:2:  [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).
	fopen( filename, mode )
data/libfwnt-20181227/common/memory.h:109:2:  [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( (void *) destination, (void *) source, count )
data/libfwnt-20181227/common/narrow_string.h:100: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.
	(char *) memcpy( (void *) destination, (void *) source, size )
data/libfwnt-20181227/pyfwnt/pyfwnt_error.c:69: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 error_string[ PYFWNT_ERROR_STRING_SIZE ];
data/libfwnt-20181227/pyfwnt/pyfwnt_error.c:209: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 error_string[ PYFWNT_ERROR_STRING_SIZE ];
data/libfwnt-20181227/pyfwnt/pyfwnt_error.c:339: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 error_string[ PYFWNT_ERROR_STRING_SIZE ];
data/libfwnt-20181227/pyfwnt/pyfwnt_error.c:340: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 exception_string[ PYFWNT_ERROR_STRING_SIZE ];
data/libfwnt-20181227/tests/fwnt_test_memory.c:83: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.
void *memcpy(
data/libfwnt-20181227/common/narrow_string.h:59:2:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	strlen( string )
data/libfwnt-20181227/common/narrow_string.h:104:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy( destination, source, size )
data/libfwnt-20181227/common/wide_string.h:60:2:  [1] (buffer) wcslen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	wcslen( string )
data/libfwnt-20181227/common/wide_string.h:101:2:  [1] (buffer) wcsncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	wcsncpy( destination, source, size )
data/libfwnt-20181227/libcthreads/libcthreads_read_write_lock.h:78:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
#error Missing read/write lock type

ANALYSIS SUMMARY:

Hits = 45
Lines analyzed = 51349 in approximately 1.03 seconds (49864 lines/second)
Physical Source Lines of Code (SLOC) = 38064
Hits@level = [0]  31 [1]   5 [2]   8 [3]  17 [4]  15 [5]   0
Hits@level+ = [0+]  76 [1+]  45 [2+]  40 [3+]  32 [4+]  15 [5+]   0
Hits/KSLOC@level+ = [0+] 1.99664 [1+] 1.18222 [2+] 1.05086 [3+] 0.840689 [4+] 0.394073 [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.