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/coinor-flopc++-1.0.6/BuildTools/headers/configall_system_msc.h Examining data/coinor-flopc++-1.0.6/BuildTools/headers/configall_system.h Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_index.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/flopc.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_constraint.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_variable.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_index.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/FlopCppConfig.h Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_set.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_domain.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_domain.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_utilities.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_data.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_boolean.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_constant.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_data.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_model.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_variable.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_expression.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_set.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_constraint.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_model.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_expression.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_constant.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/flopc.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_utilities.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/src/MP_boolean.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/aircraft.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/multiProduct.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/sudoku.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/coex.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/stampl2.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/bid.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/magic.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/stampl.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/cuttingStock.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/train.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/cross.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/coexx.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/ampl.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/gapmin.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/xbsl.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/transport.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/CEPFlopCppModel.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/tap.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/stochbenders.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/examples/mine.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/test/unitTest.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestBed.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/unitTest.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/setTest.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/booleanTest.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestBed.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/constantTest.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/indexTest.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/unitTest.hpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestItem.cpp Examining data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestItem.hpp FINAL RESULTS: data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestItem.cpp:12:5: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(name,itemName); data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestItem.cpp:75:2: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(fileName,_fileName); data/coinor-flopc++-1.0.6/FlopCpp/examples/multiProduct.cpp:43:8: [3] (random) random: 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. double random(double min, double max) { data/coinor-flopc++-1.0.6/FlopCpp/examples/multiProduct.cpp:107:14: [3] (random) random: 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. supply(i) = random(200,300); data/coinor-flopc++-1.0.6/FlopCpp/examples/multiProduct.cpp:110:14: [3] (random) random: 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. demand(i) = random(50,100); data/coinor-flopc++-1.0.6/FlopCpp/examples/multiProduct.cpp:113:12: [3] (random) random: 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. cost(i) = random(1,2); data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestItem.cpp:11:21: [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). name = new char[strlen(itemName)+1]; data/coinor-flopc++-1.0.6/FlopCpp/unittest/TestItem.cpp:74:29: [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). fileName = new char[strlen(_fileName)+1]; ANALYSIS SUMMARY: Hits = 8 Lines analyzed = 7693 in approximately 0.42 seconds (18138 lines/second) Physical Source Lines of Code (SLOC) = 4870 Hits@level = [0] 0 [1] 2 [2] 0 [3] 4 [4] 2 [5] 0 Hits@level+ = [0+] 8 [1+] 8 [2+] 6 [3+] 6 [4+] 2 [5+] 0 Hits/KSLOC@level+ = [0+] 1.64271 [1+] 1.64271 [2+] 1.23203 [3+] 1.23203 [4+] 0.410678 [5+] 0 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.