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/rarcrack-0.2/rarcrack.c
Examining data/rarcrack-0.2/rarcrack.h

FINAL RESULTS:

data/rarcrack-0.2/rarcrack.c:115:6:  [4] (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).
					strcpy(password,tmp);
data/rarcrack-0.2/rarcrack.c:125:6:  [4] (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).
					strcpy(password,tmp);
data/rarcrack-0.2/rarcrack.c:130:6:  [4] (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).
					strcpy((char*) &password_good, (char*) &password);
data/rarcrack-0.2/rarcrack.c:171:4:  [4] (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).
   strcpy(ok, password);
data/rarcrack-0.2/rarcrack.c:202:3:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
		sprintf((char*)&cmd, finalcmd, current, filename);
data/rarcrack-0.2/rarcrack.c:203:10:  [4] (shell) popen:
  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.
		Pipe = popen(cmd, "r");
data/rarcrack-0.2/rarcrack.c:207:4:  [4] (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).
			strcpy(password_good, current);
data/rarcrack-0.2/rarcrack.c:283:6:  [4] (buffer) sscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
					sscanf(argv[++i], "%s", &test);
data/rarcrack-0.2/rarcrack.c:286:8:  [4] (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).
							strcpy(finalcmd, CMD[j]);
data/rarcrack-0.2/rarcrack.c:300:5:  [4] (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).
				strcpy((char*)&filename, argv[i]);
data/rarcrack-0.2/rarcrack.c:306:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf((char*)&statname,"%s.xml",(char*)&filename);
data/rarcrack-0.2/rarcrack.c:315:3:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
		sprintf((char*)&test, CMD_DETECT, filename);
data/rarcrack-0.2/rarcrack.c:316:12:  [4] (shell) popen:
  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.
		totest = popen(test,"r");
data/rarcrack-0.2/rarcrack.c:317:3:  [4] (buffer) fscanf:
  The scanf() family's %s operation, without a limit specification, permits
  buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a
  different input function.
		fscanf(totest,"%s",(char*)&test);
data/rarcrack-0.2/rarcrack.c:321:5:  [4] (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).
				strcpy(finalcmd,CMD[i]);
data/rarcrack-0.2/rarcrack.c:26:1:  [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 password[PWD_LEN+1] = {'\0','\0'}; //this contains the actual password
data/rarcrack-0.2/rarcrack.c:27:1:  [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 password_good[PWD_LEN+1] = {'\0', '\0'};  //this changed only once, when we found the good passord
data/rarcrack-0.2/rarcrack.c:31:1:  [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 filename[255];	//the archive file name
data/rarcrack-0.2/rarcrack.c:32:1:  [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 statname[259];	//status xml file name filename + ".xml"
data/rarcrack-0.2/rarcrack.c:36:1:  [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 finalcmd[300] = {'\0', '\0'}; //this depending on arhive file type, it's a command to test file with password
data/rarcrack-0.2/rarcrack.c:39:9:  [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.
	static char ret[2];
data/rarcrack-0.2/rarcrack.c:93:11:  [2] (misc) fopen:
  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).
	totest = fopen(statname, "r");
data/rarcrack-0.2/rarcrack.c:197: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 ret[200];
data/rarcrack-0.2/rarcrack.c:198: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 cmd[400];
data/rarcrack-0.2/rarcrack.c:248: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 test[300];
data/rarcrack-0.2/rarcrack.c:307:11:  [2] (misc) fopen:
  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).
	totest = fopen(filename,"r");
data/rarcrack-0.2/rarcrack.c:49:7:  [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).
	if ((strlen(statname) > 0) && (status != NULL)) {
data/rarcrack-0.2/rarcrack.c:106:28:  [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).
				if (node->children && (strlen(node->children->content) > 0)) {
data/rarcrack-0.2/rarcrack.c:112:28:  [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).
				if (node->children && (strlen(node->children->content) > 0)) {
data/rarcrack-0.2/rarcrack.c:116: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).
					curr_len = strlen(password);
data/rarcrack-0.2/rarcrack.c:122:28:  [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).
				if (node->children && (strlen(node->children->content) > 0)) {
data/rarcrack-0.2/rarcrack.c:126: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).
					curr_len = strlen(password);
data/rarcrack-0.2/rarcrack.c:339:11:  [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).
	ABCLEN = strlen(ABC);

ANALYSIS SUMMARY:

Hits = 33
Lines analyzed = 397 in approximately 0.02 seconds (16121 lines/second)
Physical Source Lines of Code (SLOC) = 337
Hits@level = [0]  28 [1]   7 [2]  11 [3]   0 [4]  15 [5]   0
Hits@level+ = [0+]  61 [1+]  33 [2+]  26 [3+]  15 [4+]  15 [5+]   0
Hits/KSLOC@level+ = [0+] 181.009 [1+] 97.9228 [2+] 77.1513 [3+] 44.5104 [4+] 44.5104 [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.