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/brutalchess-0.5.2+dfsg/resource.h
Examining data/brutalchess-0.5.2+dfsg/src/piecesets.h
Examining data/brutalchess-0.5.2+dfsg/src/humanplayer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/menuitem.cpp
Examining data/brutalchess-0.5.2+dfsg/src/utils.h
Examining data/brutalchess-0.5.2+dfsg/src/basicset.cpp
Examining data/brutalchess-0.5.2+dfsg/src/chessgame.h
Examining data/brutalchess-0.5.2+dfsg/src/boardtheme.cpp
Examining data/brutalchess-0.5.2+dfsg/src/statsnapshot.cpp
Examining data/brutalchess-0.5.2+dfsg/src/brutalchess.cpp
Examining data/brutalchess-0.5.2+dfsg/src/fontloader.cpp
Examining data/brutalchess-0.5.2+dfsg/src/chessgame.cpp
Examining data/brutalchess-0.5.2+dfsg/src/chessplayer.h
Examining data/brutalchess-0.5.2+dfsg/src/pieceset.h
Examining data/brutalchess-0.5.2+dfsg/src/boardposition.h
Examining data/brutalchess-0.5.2+dfsg/src/gamecore.h
Examining data/brutalchess-0.5.2+dfsg/src/options.cpp
Examining data/brutalchess-0.5.2+dfsg/src/texture.h
Examining data/brutalchess-0.5.2+dfsg/src/timer.h
Examining data/brutalchess-0.5.2+dfsg/src/statsnapshot.h
Examining data/brutalchess-0.5.2+dfsg/src/objfile.cpp
Examining data/brutalchess-0.5.2+dfsg/src/boardmove.h
Examining data/brutalchess-0.5.2+dfsg/src/vector.cpp
Examining data/brutalchess-0.5.2+dfsg/src/bitboard.h
Examining data/brutalchess-0.5.2+dfsg/src/granitetheme.cpp
Examining data/brutalchess-0.5.2+dfsg/src/menuitem.h
Examining data/brutalchess-0.5.2+dfsg/src/md3model.h
Examining data/brutalchess-0.5.2+dfsg/src/q3charmodel.h
Examining data/brutalchess-0.5.2+dfsg/src/debugset.cpp
Examining data/brutalchess-0.5.2+dfsg/src/bitboard.cpp
Examining data/brutalchess-0.5.2+dfsg/src/chessgamestate.cpp
Examining data/brutalchess-0.5.2+dfsg/src/md3model.cpp
Examining data/brutalchess-0.5.2+dfsg/src/config.h
Examining data/brutalchess-0.5.2+dfsg/src/md3test.cpp
Examining data/brutalchess-0.5.2+dfsg/src/chessplayers.h
Examining data/brutalchess-0.5.2+dfsg/src/randomplayer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/board.h
Examining data/brutalchess-0.5.2+dfsg/src/timer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/chessgamestate.h
Examining data/brutalchess-0.5.2+dfsg/src/exception.h
Examining data/brutalchess-0.5.2+dfsg/src/menu.h
Examining data/brutalchess-0.5.2+dfsg/src/fontloader.h
Examining data/brutalchess-0.5.2+dfsg/src/piece.cpp
Examining data/brutalchess-0.5.2+dfsg/src/q3charmodel.cpp
Examining data/brutalchess-0.5.2+dfsg/src/options.h
Examining data/brutalchess-0.5.2+dfsg/src/q3set.cpp
Examining data/brutalchess-0.5.2+dfsg/src/boardposition.cpp
Examining data/brutalchess-0.5.2+dfsg/src/boardthemes.h
Examining data/brutalchess-0.5.2+dfsg/src/boardtheme.h
Examining data/brutalchess-0.5.2+dfsg/src/menu.cpp
Examining data/brutalchess-0.5.2+dfsg/src/boardmove.cpp
Examining data/brutalchess-0.5.2+dfsg/src/piece.h
Examining data/brutalchess-0.5.2+dfsg/src/chessplayer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/board.cpp
Examining data/brutalchess-0.5.2+dfsg/src/objfile.h
Examining data/brutalchess-0.5.2+dfsg/src/texture.cpp
Examining data/brutalchess-0.5.2+dfsg/src/pieceset.cpp
Examining data/brutalchess-0.5.2+dfsg/src/vector.h
Examining data/brutalchess-0.5.2+dfsg/src/md3view.cpp
Examining data/brutalchess-0.5.2+dfsg/src/objview.cpp
Examining data/brutalchess-0.5.2+dfsg/src/brutalplayer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/gamecore.cpp
Examining data/brutalchess-0.5.2+dfsg/src/faileplayer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/xboardplayer.cpp
Examining data/brutalchess-0.5.2+dfsg/src/utils.cpp

FINAL RESULTS:

data/brutalchess-0.5.2+dfsg/src/faileplayer.cpp:61:3:  [4] (shell) execvp:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		execvp( "./faile", NULL );
data/brutalchess-0.5.2+dfsg/src/fontloader.cpp:304:6:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
	    vsprintf(text, fmt, ap);						// And Converts Symbols To Actual Numbers
data/brutalchess-0.5.2+dfsg/src/xboardplayer.cpp:62:3:  [4] (shell) execvp:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
		execvp( "gnuchess", NULL );
data/brutalchess-0.5.2+dfsg/src/brutalplayer.cpp:23:2:  [3] (random) srand:
  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.
	srand(time(NULL));
data/brutalchess-0.5.2+dfsg/src/randomplayer.cpp:20:2:  [3] (random) srand:
  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.
	srand(time(NULL));
data/brutalchess-0.5.2+dfsg/src/fontloader.cpp:296: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 text[1024];								// Holds Our String
data/brutalchess-0.5.2+dfsg/src/gamecore.cpp:93: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 blank[64];
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:123:5:  [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 buf[1024];
data/brutalchess-0.5.2+dfsg/src/md3model.h:91:3:  [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 	ID[4];
data/brutalchess-0.5.2+dfsg/src/md3model.h:93:3:  [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 	name[68];
data/brutalchess-0.5.2+dfsg/src/md3model.h:106:6:  [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	name[64];   // Name of the tag
data/brutalchess-0.5.2+dfsg/src/md3model.h:117:3:  [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	name[16];
data/brutalchess-0.5.2+dfsg/src/md3model.h:127:3:  [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	id[4];
data/brutalchess-0.5.2+dfsg/src/md3model.h:128:3:  [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	name[68];
data/brutalchess-0.5.2+dfsg/src/md3model.h:141:3:  [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 name[68];
data/brutalchess-0.5.2+dfsg/src/md3model.h:154:12:  [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.
		unsigned char normals[2];
data/brutalchess-0.5.2+dfsg/src/faileplayer.cpp:78:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		while ( read( m_from[0], &c, 1 ) ) {
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:36:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	infile.read((char*)&m_header, sizeof(m_header));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:41:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		infile.read((char*)&currFrame.header, sizeof(md3FrameHeader_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:49:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read((char*)&currTag, sizeof(md3Tag_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:66:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		infile.read((char*)&currMesh.header, sizeof(md3MeshHeader_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:70:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read((char*)&currSkin, sizeof(md3Skin_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:77:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read((char*)&currTriangle, sizeof(md3Triangle_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:84:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read((char*)&currTexCoord, sizeof(md3TexCoord_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:93:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			infile.read((char*)&currVertex, sizeof(md3Vertex_t));
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:126:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
					strncpy(bufptr, m_filename.c_str(), 1024);
data/brutalchess-0.5.2+dfsg/src/md3model.cpp:131:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
					strncpy(buf, toks[1].c_str(), 1024);
data/brutalchess-0.5.2+dfsg/src/xboardplayer.cpp:79:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		while ( read( m_from[0], &c, 1 ) ) {

ANALYSIS SUMMARY:

Hits = 28
Lines analyzed = 11497 in approximately 0.31 seconds (37416 lines/second)
Physical Source Lines of Code (SLOC) = 7592
Hits@level = [0]   1 [1]  12 [2]  11 [3]   2 [4]   3 [5]   0
Hits@level+ = [0+]  29 [1+]  28 [2+]  16 [3+]   5 [4+]   3 [5+]   0
Hits/KSLOC@level+ = [0+] 3.81981 [1+] 3.68809 [2+] 2.10748 [3+] 0.658588 [4+] 0.395153 [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.