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/enki-aseba-1.6.99/tests/testGeometry.cpp Examining data/enki-aseba-1.6.99/python/enki.cpp Examining data/enki-aseba-1.6.99/enki/Random.h Examining data/enki-aseba-1.6.99/enki/interactions/Microphone.h Examining data/enki-aseba-1.6.99/enki/interactions/IRSensor.cpp Examining data/enki-aseba-1.6.99/enki/interactions/ActiveSoundSource.h Examining data/enki-aseba-1.6.99/enki/interactions/IRSensor.h Examining data/enki-aseba-1.6.99/enki/interactions/ActiveSoundSource.cpp Examining data/enki-aseba-1.6.99/enki/interactions/Microphone.cpp Examining data/enki-aseba-1.6.99/enki/interactions/CircularCam.h Examining data/enki-aseba-1.6.99/enki/interactions/Bluetooth.h Examining data/enki-aseba-1.6.99/enki/interactions/GroundSensor.h Examining data/enki-aseba-1.6.99/enki/interactions/Bluetooth.cpp Examining data/enki-aseba-1.6.99/enki/interactions/GroundSensor.cpp Examining data/enki-aseba-1.6.99/enki/interactions/CircularCam.cpp Examining data/enki-aseba-1.6.99/enki/Interaction.h Examining data/enki-aseba-1.6.99/enki/PhysicalEngine.h Examining data/enki-aseba-1.6.99/enki/PhysicalEngine.cpp Examining data/enki-aseba-1.6.99/enki/BluetoothBase.cpp Examining data/enki-aseba-1.6.99/enki/Geometry.h Examining data/enki-aseba-1.6.99/enki/robots/marxbot/Marxbot.h Examining data/enki-aseba-1.6.99/enki/robots/marxbot/Marxbot.cpp Examining data/enki-aseba-1.6.99/enki/robots/DifferentialWheeled.h Examining data/enki-aseba-1.6.99/enki/robots/khepera/Khepera.cpp Examining data/enki-aseba-1.6.99/enki/robots/khepera/Khepera.h Examining data/enki-aseba-1.6.99/enki/robots/s-bot/Sbot.h Examining data/enki-aseba-1.6.99/enki/robots/s-bot/Sbot.cpp Examining data/enki-aseba-1.6.99/enki/robots/s-bot/SbotObject.h Examining data/enki-aseba-1.6.99/enki/robots/s-bot/SbotObject.cpp Examining data/enki-aseba-1.6.99/enki/robots/e-puck/EPuck.cpp Examining data/enki-aseba-1.6.99/enki/robots/e-puck/EPuck.h Examining data/enki-aseba-1.6.99/enki/robots/DifferentialWheeled.cpp Examining data/enki-aseba-1.6.99/enki/robots/thymio2/Thymio2.h Examining data/enki-aseba-1.6.99/enki/robots/thymio2/Thymio2.cpp Examining data/enki-aseba-1.6.99/enki/Types.h Examining data/enki-aseba-1.6.99/enki/BluetoothBase.h Examining data/enki-aseba-1.6.99/enki/Geometry.cpp Examining data/enki-aseba-1.6.99/enki/Types.cpp Examining data/enki-aseba-1.6.99/examples/minimal/enkiMinimal.cpp Examining data/enki-aseba-1.6.99/examples/playground/Playground.cpp Examining data/enki-aseba-1.6.99/viewer/objects/Objects.h Examining data/enki-aseba-1.6.99/viewer/objects/Thymio2Body.cpp Examining data/enki-aseba-1.6.99/viewer/objects/EPuckRing.cpp Examining data/enki-aseba-1.6.99/viewer/objects/EPuckWheelLeft.cpp Examining data/enki-aseba-1.6.99/viewer/objects/EPuckBody.cpp Examining data/enki-aseba-1.6.99/viewer/objects/EPuckRest.cpp Examining data/enki-aseba-1.6.99/viewer/objects/MarxbotWheel.cpp Examining data/enki-aseba-1.6.99/viewer/objects/Thymio2Wheel.cpp Examining data/enki-aseba-1.6.99/viewer/objects/MarxbotBase.cpp Examining data/enki-aseba-1.6.99/viewer/objects/EPuckWheelRight.cpp Examining data/enki-aseba-1.6.99/viewer/MarxbotModel.h Examining data/enki-aseba-1.6.99/viewer/Thymio2Model.cpp Examining data/enki-aseba-1.6.99/viewer/Viewer.cpp Examining data/enki-aseba-1.6.99/viewer/EPuckModel.h Examining data/enki-aseba-1.6.99/viewer/Thymio2Model.h Examining data/enki-aseba-1.6.99/viewer/EPuckModel.cpp Examining data/enki-aseba-1.6.99/viewer/MarxbotModel.cpp Examining data/enki-aseba-1.6.99/viewer/Viewer.h FINAL RESULTS: data/enki-aseba-1.6.99/enki/PhysicalEngine.cpp:52:13: [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. FastRandom random; data/enki-aseba-1.6.99/enki/PhysicalEngine.cpp:1141:3: [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. random.setSeed(seed); data/enki-aseba-1.6.99/enki/PhysicalEngine.h:521:20: [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. extern FastRandom random; data/enki-aseba-1.6.99/enki/interactions/Bluetooth.cpp:322: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. address=random.get()%UINT_MAX; data/enki-aseba-1.6.99/enki/robots/DifferentialWheeled.cpp:76:30: [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. leftSpeed * (baseFactor + random.getRange(noiseFactor)), data/enki-aseba-1.6.99/enki/robots/DifferentialWheeled.cpp:80:31: [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. rightSpeed * (baseFactor + random.getRange(noiseFactor)), data/enki-aseba-1.6.99/enki/robots/e-puck/EPuck.cpp:120:50: [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. bluetooth = new Bluetooth(this,1000,7,100,100,random.get()%UINT_MAX); data/enki-aseba-1.6.99/enki/robots/marxbot/Marxbot.cpp:53:11: [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. dist = random.getRange(20.0); data/enki-aseba-1.6.99/enki/robots/marxbot/Marxbot.cpp:55:17: [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. dist *= (0.97+random.getRange(0.06)); ANALYSIS SUMMARY: Hits = 9 Lines analyzed = 20043 in approximately 2.11 seconds (9505 lines/second) Physical Source Lines of Code (SLOC) = 15011 Hits@level = [0] 0 [1] 0 [2] 0 [3] 9 [4] 0 [5] 0 Hits@level+ = [0+] 9 [1+] 9 [2+] 9 [3+] 9 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.59956 [1+] 0.59956 [2+] 0.59956 [3+] 0.59956 [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.