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.