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/kolf-20.04.3/scoreboard.h
Examining data/kolf-20.04.3/kolf.cpp
Examining data/kolf-20.04.3/kcomboboxdialog.h
Examining data/kolf-20.04.3/game.cpp
Examining data/kolf-20.04.3/tagaro/board.cpp
Examining data/kolf-20.04.3/tagaro/board.h
Examining data/kolf-20.04.3/tagaro/spriteobjectitem.h
Examining data/kolf-20.04.3/tagaro/scene.h
Examining data/kolf-20.04.3/tagaro/spriteobjectitem.cpp
Examining data/kolf-20.04.3/tagaro/scene_p.h
Examining data/kolf-20.04.3/tagaro/scene.cpp
Examining data/kolf-20.04.3/vector.h
Examining data/kolf-20.04.3/kolf.h
Examining data/kolf-20.04.3/overlay.cpp
Examining data/kolf-20.04.3/objects.cpp
Examining data/kolf-20.04.3/editor.h
Examining data/kolf-20.04.3/obstacles.cpp
Examining data/kolf-20.04.3/itemfactory.cpp
Examining data/kolf-20.04.3/landscape.cpp
Examining data/kolf-20.04.3/ball.h
Examining data/kolf-20.04.3/shape.cpp
Examining data/kolf-20.04.3/obstacles.h
Examining data/kolf-20.04.3/utils-animateditem.cpp
Examining data/kolf-20.04.3/landscape.h
Examining data/kolf-20.04.3/itemfactory.h
Examining data/kolf-20.04.3/config.h
Examining data/kolf-20.04.3/main.cpp
Examining data/kolf-20.04.3/ball.cpp
Examining data/kolf-20.04.3/editor.cpp
Examining data/kolf-20.04.3/canvasitem.cpp
Examining data/kolf-20.04.3/newgame.h
Examining data/kolf-20.04.3/game.h
Examining data/kolf-20.04.3/newgame.cpp
Examining data/kolf-20.04.3/overlay.h
Examining data/kolf-20.04.3/objects.h
Examining data/kolf-20.04.3/external/Box2D/Collision/b2Collision.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2BroadPhase.h
Examining data/kolf-20.04.3/external/Box2D/Collision/b2BroadPhase.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2Distance.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2CollideEdge.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2DynamicTree.h
Examining data/kolf-20.04.3/external/Box2D/Collision/b2DynamicTree.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2Collision.h
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2LoopShape.h
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2Shape.h
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2LoopShape.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2CircleShape.h
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2EdgeShape.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2PolygonShape.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2CircleShape.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2EdgeShape.h
Examining data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2PolygonShape.h
Examining data/kolf-20.04.3/external/Box2D/Collision/b2TimeOfImpact.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2CollidePolygon.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2Distance.h
Examining data/kolf-20.04.3/external/Box2D/Collision/b2CollideCircle.cpp
Examining data/kolf-20.04.3/external/Box2D/Collision/b2TimeOfImpact.h
Examining data/kolf-20.04.3/external/Box2D/Common/b2Math.cpp
Examining data/kolf-20.04.3/external/Box2D/Common/b2Settings.h
Examining data/kolf-20.04.3/external/Box2D/Common/b2BlockAllocator.cpp
Examining data/kolf-20.04.3/external/Box2D/Common/b2GrowableStack.h
Examining data/kolf-20.04.3/external/Box2D/Common/b2Math.h
Examining data/kolf-20.04.3/external/Box2D/Common/b2BlockAllocator.h
Examining data/kolf-20.04.3/external/Box2D/Common/b2Settings.cpp
Examining data/kolf-20.04.3/external/Box2D/Common/b2StackAllocator.h
Examining data/kolf-20.04.3/external/Box2D/Common/b2StackAllocator.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2Body.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2ContactManager.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2World.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2TimeStep.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2WorldCallbacks.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2World.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2LoopAndPolygonContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2Contact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2LoopAndPolygonContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2ContactSolver.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2Contact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2LoopAndCircleContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2PolygonContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2ContactSolver.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2LoopAndCircleContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2CircleContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2PolygonContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Contacts/b2CircleContact.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2Fixture.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2ContactManager.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2Body.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2Island.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2Island.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2WorldCallbacks.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/b2Fixture.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2WeldJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2FrictionJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2PrismaticJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2MouseJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2GearJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2DistanceJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2Joint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2LineJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2GearJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2PulleyJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2RopeJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2LineJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2MouseJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2RevoluteJoint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2FrictionJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2DistanceJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2WeldJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2Joint.h
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2PulleyJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2RopeJoint.cpp
Examining data/kolf-20.04.3/external/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
Examining data/kolf-20.04.3/kcomboboxdialog.cpp
Examining data/kolf-20.04.3/config.cpp
Examining data/kolf-20.04.3/utils-animateditem.h
Examining data/kolf-20.04.3/canvasitem.h
Examining data/kolf-20.04.3/scoreboard.cpp
Examining data/kolf-20.04.3/shape.h

FINAL RESULTS:

data/kolf-20.04.3/game.cpp:2153:43:  [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.
	int newHole = 1 + (int)((double)KRandom::random() * ((double)(highestHole - 1) / (double)RAND_MAX));
data/kolf-20.04.3/objects.cpp:50:39:  [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.
	const QColor myColor((QRgb)(KRandom::random() % 0x01000000));
data/kolf-20.04.3/obstacles.cpp:54:49:  [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.
		betweenVector.direction() + deg2rad((KRandom::random() % 3) - 1)
data/kolf-20.04.3/external/Box2D/Collision/Shapes/b2LoopShape.cpp:38: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(m_vertices, vertices, m_count * sizeof(b2Vec2));
data/kolf-20.04.3/external/Box2D/Collision/b2BroadPhase.cpp:73: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(m_moveBuffer, oldBuffer, m_moveCount * sizeof(int32));
data/kolf-20.04.3/external/Box2D/Collision/b2BroadPhase.cpp:108: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(m_pairBuffer, oldBuffer, m_pairCount * sizeof(b2Pair));
data/kolf-20.04.3/external/Box2D/Collision/b2DynamicTree.cpp:64: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(m_nodes, oldNodes, m_nodeCount * sizeof(b2DynamicTreeNode));
data/kolf-20.04.3/external/Box2D/Common/b2BlockAllocator.cpp:127:4:  [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(m_chunks, oldChunks, m_chunkCount * sizeof(b2Chunk));
data/kolf-20.04.3/external/Box2D/Common/b2GrowableStack.h:54:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
			std::memcpy(m_stack, old, m_count * sizeof(T));
data/kolf-20.04.3/external/Box2D/Common/b2StackAllocator.h:50:2:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
	char m_data[b2_stackSize];
data/kolf-20.04.3/kolf.cpp:626:11:  [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).
	tempFile.open();

ANALYSIS SUMMARY:

Hits = 11
Lines analyzed = 29140 in approximately 2.23 seconds (13092 lines/second)
Physical Source Lines of Code (SLOC) = 19416
Hits@level = [0]   1 [1]   0 [2]   8 [3]   3 [4]   0 [5]   0
Hits@level+ = [0+]  12 [1+]  11 [2+]  11 [3+]   3 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.618047 [1+] 0.566543 [2+] 0.566543 [3+] 0.154512 [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.