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/vmmlib-1.0/include/vmmlib/frustum_culler.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack_svd.hpp
Examining data/vmmlib-1.0/include/vmmlib/t3_ihopm.hpp
Examining data/vmmlib-1.0/include/vmmlib/tensor3.hpp
Examining data/vmmlib-1.0/include/vmmlib/math.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack/detail/f2c.h
Examining data/vmmlib-1.0/include/vmmlib/lapack/detail/clapack.h
Examining data/vmmlib-1.0/include/vmmlib/t3_hopm.hpp
Examining data/vmmlib-1.0/include/vmmlib/aabb.hpp
Examining data/vmmlib-1.0/include/vmmlib/linear_least_squares.hpp
Examining data/vmmlib-1.0/include/vmmlib/t3_hooi.hpp
Examining data/vmmlib-1.0/include/vmmlib/t3_hosvd.hpp
Examining data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp
Examining data/vmmlib-1.0/include/vmmlib/exception.hpp
Examining data/vmmlib-1.0/include/vmmlib/matrix_pseudoinverse.hpp
Examining data/vmmlib-1.0/include/vmmlib/blas_dgemm.hpp
Examining data/vmmlib-1.0/include/vmmlib/blas_types.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack_includes.hpp
Examining data/vmmlib-1.0/include/vmmlib/vmmlib.hpp
Examining data/vmmlib-1.0/include/vmmlib/vector_traits.hpp
Examining data/vmmlib-1.0/include/vmmlib/matrix_traits.hpp
Examining data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp
Examining data/vmmlib-1.0/include/vmmlib/frustum.hpp
Examining data/vmmlib-1.0/include/vmmlib/visibility.hpp
Examining data/vmmlib-1.0/include/vmmlib/svd.hpp
Examining data/vmmlib-1.0/include/vmmlib/matrix.hpp
Examining data/vmmlib-1.0/include/vmmlib/qr_decomposition.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack_linear_least_squares.hpp
Examining data/vmmlib-1.0/include/vmmlib/blas_dot.hpp
Examining data/vmmlib-1.0/include/vmmlib/enable_if.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack_types.hpp
Examining data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack.hpp
Examining data/vmmlib-1.0/include/vmmlib/tucker3_tensor.hpp
Examining data/vmmlib-1.0/include/vmmlib/blas_includes.hpp
Examining data/vmmlib-1.0/include/vmmlib/jacobi_solver.hpp
Examining data/vmmlib-1.0/include/vmmlib/cp3_tensor.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack_gaussian_elimination.hpp
Examining data/vmmlib-1.0/include/vmmlib/tensor3_iterator.hpp
Examining data/vmmlib-1.0/include/vmmlib/qtucker3_tensor.hpp
Examining data/vmmlib-1.0/include/vmmlib/vmmlib_config.hpp
Examining data/vmmlib-1.0/include/vmmlib/lapack_sym_eigs.hpp
Examining data/vmmlib-1.0/include/vmmlib/matrix_functors.hpp
Examining data/vmmlib-1.0/include/vmmlib/vector.hpp
Examining data/vmmlib-1.0/include/vmmlib/quaternion.hpp
Examining data/vmmlib-1.0/tests/svd_test.cpp
Examining data/vmmlib-1.0/tests/matrix_test.cpp
Examining data/vmmlib-1.0/tests/tucker3_exporter_importer_test.hpp
Examining data/vmmlib-1.0/tests/matrix_pseudoinverse_test.cpp
Examining data/vmmlib-1.0/tests/lapack_gaussian_elimination_test.hpp
Examining data/vmmlib-1.0/tests/f2c_fix.h
Examining data/vmmlib-1.0/tests/vmmlib_lapack_main.cpp
Examining data/vmmlib-1.0/tests/jacobi_test.cpp
Examining data/vmmlib-1.0/tests/tensor3_iterator_test.hpp
Examining data/vmmlib-1.0/tests/blas_dgemm_test.cpp
Examining data/vmmlib-1.0/tests/svd_lapack_vs_old.hpp
Examining data/vmmlib-1.0/tests/cp3_tensor_test.hpp
Examining data/vmmlib-1.0/tests/blas_dot_test.hpp
Examining data/vmmlib-1.0/tests/blas_dgemm_test.hpp
Examining data/vmmlib-1.0/tests/lapack_svd_test.cpp
Examining data/vmmlib-1.0/tests/stringtests.cpp
Examining data/vmmlib-1.0/tests/t3_ihopm_test.hpp
Examining data/vmmlib-1.0/tests/lapack_sym_eigs_test.cpp
Examining data/vmmlib-1.0/tests/performance_test.cpp
Examining data/vmmlib-1.0/tests/quaternion_test.cpp
Examining data/vmmlib-1.0/tests/qtucker3_tensor_test.hpp
Examining data/vmmlib-1.0/tests/jacobi_test.hpp
Examining data/vmmlib-1.0/tests/quaternion_test.hpp
Examining data/vmmlib-1.0/tests/matrix_compare_perf_test.cpp
Examining data/vmmlib-1.0/tests/t3_hosvd_test.hpp
Examining data/vmmlib-1.0/tests/t3_hopm_test.hpp
Examining data/vmmlib-1.0/tests/svd_lapack_vs_old.cpp
Examining data/vmmlib-1.0/tests/blas_dot_test.cpp
Examining data/vmmlib-1.0/tests/qr_decomposition_test.hpp
Examining data/vmmlib-1.0/tests/lapack_linear_least_squares_test.cpp
Examining data/vmmlib-1.0/tests/qr_decomposition_test.cpp
Examining data/vmmlib-1.0/tests/tucker3_tensor_test.hpp
Examining data/vmmlib-1.0/tests/matrix_compare_perf_test.hpp
Examining data/vmmlib-1.0/tests/frustum_test.hpp
Examining data/vmmlib-1.0/tests/lapack_sym_eigs_test.hpp
Examining data/vmmlib-1.0/tests/lapack_gaussian_elimination_test.cpp
Examining data/vmmlib-1.0/tests/svd_test.hpp
Examining data/vmmlib-1.0/tests/performance_test.hpp
Examining data/vmmlib-1.0/tests/matrix_pseudoinverse_test.hpp
Examining data/vmmlib-1.0/tests/unit_test.hpp
Examining data/vmmlib-1.0/tests/vector_test.hpp
Examining data/vmmlib-1.0/tests/unit_test.cpp
Examining data/vmmlib-1.0/tests/tensor3_test.hpp
Examining data/vmmlib-1.0/tests/vector_test.cpp
Examining data/vmmlib-1.0/tests/timer.hpp
Examining data/vmmlib-1.0/tests/timer.cpp
Examining data/vmmlib-1.0/tests/lapack_linear_least_squares_test.hpp
Examining data/vmmlib-1.0/tests/vmmlib_performance_tests_main.cpp
Examining data/vmmlib-1.0/tests/vmmlib_unit_tests_main.cpp
Examining data/vmmlib-1.0/tests/perf_test.cpp
Examining data/vmmlib-1.0/tests/matrix_test.hpp
Examining data/vmmlib-1.0/tests/frustum_test.cpp
Examining data/vmmlib-1.0/tests/lapack_svd_test.hpp
Examining data/vmmlib-1.0/tests/t3_hooi_test.hpp
Examining data/vmmlib-1.0/tests/tensor3_iterator_test.cpp
Examining data/vmmlib-1.0/tests/tensor3_test.cpp
Examining data/vmmlib-1.0/tests/tucker3_tensor_test.cpp
Examining data/vmmlib-1.0/tests/qtucker3_tensor_test.cpp
Examining data/vmmlib-1.0/tests/tucker3_exporter_importer_test.cpp
Examining data/vmmlib-1.0/tests/cp3_tensor_test.cpp
Examining data/vmmlib-1.0/tests/t3_hosvd_test.cpp
Examining data/vmmlib-1.0/tests/t3_hooi_test.cpp
Examining data/vmmlib-1.0/tests/t3_hopm_test.cpp
Examining data/vmmlib-1.0/tests/t3_ihopm_test.cpp

FINAL RESULTS:

data/vmmlib-1.0/include/vmmlib/matrix.hpp:2717:3:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		srand( seed );
data/vmmlib-1.0/include/vmmlib/t3_hooi.hpp:77:5:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
				srand( time(NULL) );
data/vmmlib-1.0/include/vmmlib/t3_hopm.hpp:76:5:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
				srand( time(NULL) );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:854:3:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		srand( seed );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:888:3:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		srand( seed );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:914:3:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		srand( seed );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:959:3:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		srand( seed );
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:801:2:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
	srand(seed);
data/vmmlib-1.0/include/vmmlib/vector.hpp:1790:3:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
		srand( seed );
data/vmmlib-1.0/tests/perf_test.cpp:22:5:  [3] (random) srand:
  This function is not sufficiently random for security-related functions
  such as key and nonce creation (CWE-327). Use a more secure technique for
  acquiring random values.
    srand( 1 );
data/vmmlib-1.0/include/vmmlib/frustum.hpp:177:5:  [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( array, source_.array, 6 * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/matrix.hpp:996:5:  [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( array, source_.array, M * N * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/matrix.hpp:1362:5:  [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( &column.array[0], &array[ M * index ], M * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/matrix.hpp:1379:5:  [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( array + M * index, column.array, M * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/matrix.hpp:1396:5:  [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( column.array, array + M * index, M * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/matrix.hpp:1412:5:  [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( &array[ M * index ], column.array, M * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/matrix.hpp:2752:10:  [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).
	outfile.open( path.c_str() );
data/vmmlib-1.0/include/vmmlib/quaternion.hpp:974:5:  [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( array, other.array, 4 * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/quaternion.hpp:983:5:  [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( array, other.array, 4 * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2057:5:  [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( _array, source_._array, I1 * I2 * I3 * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2106:10:  [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).
	outfile.open( path_raw.c_str() );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2137:10:  [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).
	outfile.open( path.c_str() );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2183:18:  [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).
	FILE* datfile = fopen(path_dat.c_str(), "w");
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2211:9:  [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).
	infile.open( path.c_str(), std::ios::in); 
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2261:9:  [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).
	infile.open( path.c_str(), std::ios::in); 
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:144: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( data, &u_min, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:145: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( data + end_data, &u_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:160: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( data + end_data, &core_min, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:161: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( data + end_data, &core_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:165: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( data + end_data, *u1, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:169: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( data + end_data, *u2, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:173: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( data + end_data, *u3, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:178:3:  [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 + end_data, core.get_frontal_slice_fwd( r3 ), len_core_slice );
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:211: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( data, &u_min, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:212: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( data + end_data, &u_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:218: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( data + end_data, &core_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:234: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( data + end_data, &hottest_value, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:238: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( data + end_data, *u1, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:242: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( data + end_data, *u2, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:246: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( data + end_data, *u3, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:259:5:  [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 + end_data, &core_el, len_core_el );
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:296: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( data, &u_min, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:297: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( data + end_data, &u_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:303: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( data + end_data, &core_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:319: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( data + end_data, *u1, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:323: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( data + end_data, *u2, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:327: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( data + end_data, *u3, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_exporter.hpp:341:5:  [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 + end_data, &core_el, len_core_el );
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:154: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( &u_min, data, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:155: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( &u_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:158: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( &core_min, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:159: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( &core_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:173: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( *u1, data + end_data, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:177: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( *u2, data + end_data, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:181: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( *u3, data + end_data, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:187:3:  [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( slice, data + end_data, len_core_slice );
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:226: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( &u_min, data, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:227: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( &u_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:231: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( &core_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:234: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( &hottest_value, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:251: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( *u1, data + end_data, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:255: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( *u2, data + end_data, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:259: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( *u3, data + end_data, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:268:5:  [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( &core_el, data + end_data, len_core_el );
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:309: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( &u_min, data, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:310: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( &u_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:314: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( &core_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:330: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( *u1, data + end_data, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:334: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( *u2, data + end_data, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:338: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( *u3, data + end_data, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_importer.hpp:348:5:  [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( &core_el, data + end_data, len_core_el );
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1419: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( data, &u1_min, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1420: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( data + end_data, &u1_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1421: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( data + end_data, &u2_min, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1422: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( data + end_data, &u2_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1423: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( data + end_data, &u3_min, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1424: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( data + end_data, &u3_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1428: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( data, &u_min, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1429: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( data + end_data, &u_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1435: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( data + end_data, &core_min, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1436: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( data + end_data, &core_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1440: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( data + end_data, _u1, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1444: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( data + end_data, _u2, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1448: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( data + end_data, _u3, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1453:3:  [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 + end_data, _core.get_frontal_slice_fwd( r3 ), len_core_slice );
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1487: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( &u1_min, data, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1488: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( &u1_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1489: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( &u2_min, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1490: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( &u2_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1491: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( &u3_min, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1492: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( &u3_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1494: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( &u_min, data, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1495: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( &u_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1499: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( &core_min, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1500: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( &core_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1504: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( _u1, data + end_data, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1508: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( _u2, data + end_data, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1512: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( _u3, data + end_data, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1518:3:  [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( slice, data + end_data, len_core_slice );
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1560: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( data, &u_min, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1561: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( data + end_data, &u_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1567: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( data + end_data, &core_max, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1570: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( data + end_data, &_hottest_core_value, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1574: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( data + end_data, _u1, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1578: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( data + end_data, _u2, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1582: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( data + end_data, _u3, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1596:5:  [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 + end_data, &core_el, len_core_el );
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1630: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( &u_min, data, len_t_comp ); end_data = len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1631: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( &u_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1635: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( &core_max, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1637: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( &_hottest_core_value, data + end_data, len_t_comp ); end_data += len_t_comp;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1641: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( _u1, data + end_data, len_u1 ); end_data += len_u1;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1645: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( _u2, data + end_data, len_u2 ); end_data += len_u2;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1649: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( _u3, data + end_data, len_u3 ); end_data += len_u3;
data/vmmlib-1.0/include/vmmlib/tucker3_tensor_sustests.hpp:1658:5:  [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( &core_el, data + end_data, len_core_el );
data/vmmlib-1.0/include/vmmlib/vector.hpp:479:5:  [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( array, values, M * sizeof( T ));
data/vmmlib-1.0/include/vmmlib/vector.hpp:548:5:  [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( array, v.array, sizeof( T ) * (M-1) );
data/vmmlib-1.0/include/vmmlib/vector.hpp:1419:5:  [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( array, other.array, M * sizeof( T ) );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2222:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read( data, len_read );
data/vmmlib-1.0/include/vmmlib/tensor3.hpp:2273:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read( data, len_read );
data/vmmlib-1.0/tests/matrix_compare_perf_test.cpp:121:14:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
        bool equal;

ANALYSIS SUMMARY:

Hits = 121
Lines analyzed = 33164 in approximately 0.85 seconds (38817 lines/second)
Physical Source Lines of Code (SLOC) = 24531
Hits@level = [0]   6 [1]   3 [2] 108 [3]  10 [4]   0 [5]   0
Hits@level+ = [0+] 127 [1+] 121 [2+] 118 [3+]  10 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 5.17712 [1+] 4.93253 [2+] 4.81024 [3+] 0.407647 [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.