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/xinv3d-1.3.6/aliens.c
Examining data/xinv3d-1.3.6/camera.c
Examining data/xinv3d-1.3.6/camera.h
Examining data/xinv3d-1.3.6/defines.h
Examining data/xinv3d-1.3.6/effects.c
Examining data/xinv3d-1.3.6/externs.h
Examining data/xinv3d-1.3.6/game.c
Examining data/xinv3d-1.3.6/game.h
Examining data/xinv3d-1.3.6/main-dos.c
Examining data/xinv3d-1.3.6/main-w.c
Examining data/xinv3d-1.3.6/main-x11.c
Examining data/xinv3d-1.3.6/mat4x4.c
Examining data/xinv3d-1.3.6/mat4x4.h
Examining data/xinv3d-1.3.6/object.c
Examining data/xinv3d-1.3.6/object.h
Examining data/xinv3d-1.3.6/player.c
Examining data/xinv3d-1.3.6/system.h
Examining data/xinv3d-1.3.6/vec4x1.c
Examining data/xinv3d-1.3.6/vec4x1.h
Examining data/xinv3d-1.3.6/gtext.h

FINAL RESULTS:

data/xinv3d-1.3.6/main-w.c:477:3:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		strcat(message, *gameInfo);
data/xinv3d-1.3.6/main-w.c:482:3:  [4] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused).
		strcat(message, append);
data/xinv3d-1.3.6/game.c:144:4:  [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/xinv3d-1.3.6/game.c:167:4:  [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       buffer[256], tmp_num[2];
data/xinv3d-1.3.6/game.c:175:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
   sprintf ( buffer, "%ld", gv->hi_score );
data/xinv3d-1.3.6/game.c:181:29:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
      tmp_score[i] = NUMBER[atoi(tmp_num)];
data/xinv3d-1.3.6/game.c:325:4:  [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 buffer[256], tmp_num[2];
data/xinv3d-1.3.6/game.c:333:10:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
         sprintf ( buffer, "FPS:%3.0f:(%1.3f):ms(%ld)", gv->fps, 
data/xinv3d-1.3.6/game.c:337:10:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
         sprintf ( buffer, "FPS: n/a" );
data/xinv3d-1.3.6/game.c:343:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
   sprintf ( buffer, "%ld", gv->pscore );
data/xinv3d-1.3.6/game.c:349:29:  [2] (integer) atoi:
  Unless checked, the resulting number can exceed the expected range
  (CWE-190). If source untrusted, check both minimum and maximum, even if the
  input had no minus sign (large numbers can roll over into negative number;
  consider saving to an unsigned value if that is intended).
      tmp_score[i] = NUMBER[atoi(tmp_num)];
data/xinv3d-1.3.6/game.c:364:7:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
      sprintf ( buffer, "Lives: %d", gv->plives-1 );
data/xinv3d-1.3.6/game.c:370:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
   sprintf ( buffer, "Time: %10.0fs", (double)gv->sw_t/1000);
data/xinv3d-1.3.6/game.c:373:4:  [2] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf. Risk is low because the source has a constant maximum length.
   sprintf ( buffer, "U: %d D: %d L: %d R: %d F: %d",
data/xinv3d-1.3.6/main-w.c:474: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 message[16384];
data/xinv3d-1.3.6/main-w.c:478:3:  [2] (buffer) strcat:
  Does not check for buffer overflows when concatenating to destination
  [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or
  snprintf (warning: strncat is easily misused). Risk is low because the
  source is a constant string.
		strcat(message, "\r\n");
data/xinv3d-1.3.6/mat4x4.c:49: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 ( b, a, sizeof ( MATRIX4 ) );
data/xinv3d-1.3.6/vec4x1.c:51: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 ( b, a, sizeof ( VECTOR4 ) );
data/xinv3d-1.3.6/game.c:183:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
   tmp_score[strlen(buffer)] = NULL;
data/xinv3d-1.3.6/game.c:351:14:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
   tmp_score[strlen(buffer)] = NULL;
data/xinv3d-1.3.6/main-w.c:161:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	menuitem.cch = strlen("&About xinv3d");
data/xinv3d-1.3.6/main-w.c:172:17:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	menuitem.cch = strlen("&How to Play");
data/xinv3d-1.3.6/main-w.c:350:5:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
	   strlen(message));
data/xinv3d-1.3.6/main-w.c:475:2:  [1] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused). Risk is low because the source is a constant character.
	strcpy(message, "");
data/xinv3d-1.3.6/main-x11.c:424:27:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                 message, strlen ( message ) );

ANALYSIS SUMMARY:

Hits = 25
Lines analyzed = 5486 in approximately 0.15 seconds (37128 lines/second)
Physical Source Lines of Code (SLOC) = 3678
Hits@level = [0]  25 [1]   7 [2]  15 [3]   1 [4]   2 [5]   0
Hits@level+ = [0+]  50 [1+]  25 [2+]  18 [3+]   3 [4+]   2 [5+]   0
Hits/KSLOC@level+ = [0+] 13.5943 [1+] 6.79717 [2+] 4.89396 [3+] 0.815661 [4+] 0.543774 [5+]   0
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.