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.