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/knavalbattle-20.04.3/src/kbsrenderer.h Examining data/knavalbattle-20.04.3/src/animator.cpp Examining data/knavalbattle-20.04.3/src/uientity.cpp Examining data/knavalbattle-20.04.3/src/shot.cpp Examining data/knavalbattle-20.04.3/src/ships.cpp Examining data/knavalbattle-20.04.3/src/spritefactory.cpp Examining data/knavalbattle-20.04.3/src/welcomescreen.cpp Examining data/knavalbattle-20.04.3/src/mainwindow.h Examining data/knavalbattle-20.04.3/src/grid.h Examining data/knavalbattle-20.04.3/src/coord.cpp Examining data/knavalbattle-20.04.3/src/playfield.cpp Examining data/knavalbattle-20.04.3/src/animation.cpp Examining data/knavalbattle-20.04.3/src/stats.cpp Examining data/knavalbattle-20.04.3/src/kbsrenderer.cpp Examining data/knavalbattle-20.04.3/src/button.cpp Examining data/knavalbattle-20.04.3/src/battlefield.h Examining data/knavalbattle-20.04.3/src/shot.h Examining data/knavalbattle-20.04.3/src/simplemenu.h Examining data/knavalbattle-20.04.3/src/ship.h Examining data/knavalbattle-20.04.3/src/audioplayer.h Examining data/knavalbattle-20.04.3/src/audioplayer.cpp Examining data/knavalbattle-20.04.3/src/coord.h Examining data/knavalbattle-20.04.3/src/message.h Examining data/knavalbattle-20.04.3/src/simplemenu.cpp Examining data/knavalbattle-20.04.3/src/sea.h Examining data/knavalbattle-20.04.3/src/battlefieldview.h Examining data/knavalbattle-20.04.3/src/seaview.cpp Examining data/knavalbattle-20.04.3/src/message.cpp Examining data/knavalbattle-20.04.3/src/playerentity.h Examining data/knavalbattle-20.04.3/src/ships.h Examining data/knavalbattle-20.04.3/src/statswidget.cpp Examining data/knavalbattle-20.04.3/src/animator.h Examining data/knavalbattle-20.04.3/src/settings.h Examining data/knavalbattle-20.04.3/src/playfield.h Examining data/knavalbattle-20.04.3/src/welcomescreen.h Examining data/knavalbattle-20.04.3/src/mainwindow.cpp Examining data/knavalbattle-20.04.3/src/protocol.cpp Examining data/knavalbattle-20.04.3/src/controller.cpp Examining data/knavalbattle-20.04.3/src/playerentity.cpp Examining data/knavalbattle-20.04.3/src/spritefactory.h Examining data/knavalbattle-20.04.3/src/stats.h Examining data/knavalbattle-20.04.3/src/networkdialog.h Examining data/knavalbattle-20.04.3/src/button.h Examining data/knavalbattle-20.04.3/src/controller.h Examining data/knavalbattle-20.04.3/src/networkdialog.cpp Examining data/knavalbattle-20.04.3/src/sprite.h Examining data/knavalbattle-20.04.3/src/networkentity.h Examining data/knavalbattle-20.04.3/src/uientity.h Examining data/knavalbattle-20.04.3/src/main.cpp Examining data/knavalbattle-20.04.3/src/aientity.h Examining data/knavalbattle-20.04.3/src/settings.cpp Examining data/knavalbattle-20.04.3/src/sprite.cpp Examining data/knavalbattle-20.04.3/src/networkentity.cpp Examining data/knavalbattle-20.04.3/src/statswidget.h Examining data/knavalbattle-20.04.3/src/chatwidget.h Examining data/knavalbattle-20.04.3/src/battlefieldview.cpp Examining data/knavalbattle-20.04.3/src/entity.cpp Examining data/knavalbattle-20.04.3/src/delegate.h Examining data/knavalbattle-20.04.3/src/element.h Examining data/knavalbattle-20.04.3/src/element.cpp Examining data/knavalbattle-20.04.3/src/aientity.cpp Examining data/knavalbattle-20.04.3/src/playerlabel.cpp Examining data/knavalbattle-20.04.3/src/playerlabel.h Examining data/knavalbattle-20.04.3/src/chatwidget.cpp Examining data/knavalbattle-20.04.3/src/ai/ai.cpp Examining data/knavalbattle-20.04.3/src/ai/smartai.cpp Examining data/knavalbattle-20.04.3/src/ai/dummyai.cpp Examining data/knavalbattle-20.04.3/src/ai/smartai.h Examining data/knavalbattle-20.04.3/src/ai/dummyai.h Examining data/knavalbattle-20.04.3/src/ai/ai.h Examining data/knavalbattle-20.04.3/src/battlefield.cpp Examining data/knavalbattle-20.04.3/src/sea.cpp Examining data/knavalbattle-20.04.3/src/seaview.h Examining data/knavalbattle-20.04.3/src/entity.h Examining data/knavalbattle-20.04.3/src/ship.cpp Examining data/knavalbattle-20.04.3/src/animation.h Examining data/knavalbattle-20.04.3/src/hitinfo.h Examining data/knavalbattle-20.04.3/src/protocol.h FINAL RESULTS: data/knavalbattle-20.04.3/src/ai/smartai.cpp:288:53: [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. SmartAI::SmartAI(Sea::Player player, Sea* sea, bool random, const BattleShipsConfiguration* config) data/knavalbattle-20.04.3/src/ai/smartai.cpp:290: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. , m_state(random, config) data/knavalbattle-20.04.3/src/ai/smartai.cpp:323:28: [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. SmartAI::State::State(bool random, const BattleShipsConfiguration* config) data/knavalbattle-20.04.3/src/ai/smartai.cpp:325: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. , m_random(random) data/knavalbattle-20.04.3/src/ai/smartai.h:30:29: [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. explicit State(bool random, const BattleShipsConfiguration* config); data/knavalbattle-20.04.3/src/ai/smartai.h:38:48: [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. SmartAI(Sea::Player player, Sea* sea, bool random, const BattleShipsConfiguration* config); data/knavalbattle-20.04.3/src/protocol.cpp:149:33: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). QByteArray data = m_device->read(4096); ANALYSIS SUMMARY: Hits = 7 Lines analyzed = 8249 in approximately 1.12 seconds (7375 lines/second) Physical Source Lines of Code (SLOC) = 6152 Hits@level = [0] 0 [1] 1 [2] 0 [3] 6 [4] 0 [5] 0 Hits@level+ = [0+] 7 [1+] 7 [2+] 6 [3+] 6 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 1.13784 [1+] 1.13784 [2+] 0.975293 [3+] 0.975293 [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.