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/qrouter-1.4.71/point.h
Examining data/qrouter-1.4.71/mask.h
Examining data/qrouter-1.4.71/tclqrouter.c
Examining data/qrouter-1.4.71/def.h
Examining data/qrouter-1.4.71/output.h
Examining data/qrouter-1.4.71/node.c
Examining data/qrouter-1.4.71/node.h
Examining data/qrouter-1.4.71/graphics.c
Examining data/qrouter-1.4.71/qrouter.h
Examining data/qrouter-1.4.71/qrouter.c
Examining data/qrouter-1.4.71/qrouternullg.c
Examining data/qrouter-1.4.71/qconfig.c
Examining data/qrouter-1.4.71/output.c
Examining data/qrouter-1.4.71/point.c
Examining data/qrouter-1.4.71/tkSimple.c
Examining data/qrouter-1.4.71/graphics.h
Examining data/qrouter-1.4.71/qrouterexec.c
Examining data/qrouter-1.4.71/maze.c
Examining data/qrouter-1.4.71/main.c
Examining data/qrouter-1.4.71/mask.c
Examining data/qrouter-1.4.71/lef.h
Examining data/qrouter-1.4.71/delays.c
Examining data/qrouter-1.4.71/maze.h
Examining data/qrouter-1.4.71/qconfig.h
Examining data/qrouter-1.4.71/antenna.c
Examining data/qrouter-1.4.71/lef.c
Examining data/qrouter-1.4.71/tkSimple.h
Examining data/qrouter-1.4.71/def.c

FINAL RESULTS:

data/qrouter-1.4.71/def.c:861: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(instname, token);
data/qrouter-1.4.71/def.c:865: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(instname, token);
data/qrouter-1.4.71/def.c:869: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(pinname, token);
data/qrouter-1.4.71/def.c:2008:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(filename, "%s.def", inName);
data/qrouter-1.4.71/def.c:2010:2:  [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(filename, inName);
data/qrouter-1.4.71/graphics.c:710:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
   sprintf(waitcmd, "tkwait visibility %s", qrouterdrawwin);
data/qrouter-1.4.71/lef.c:1349:7:  [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(CIFLayer[cuttype], lefl->lefName);
data/qrouter-1.4.71/lef.c:2268:6:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	    sprintf(newname, "%250s_%d", mname, suffix);
data/qrouter-1.4.71/lef.c:3530:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(filename, "%s.lef", inName);
data/qrouter-1.4.71/lef.c:3532:2:  [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(filename, inName);
data/qrouter-1.4.71/lef.c:3598:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		    sprintf(vianame, "%s_0", token);
data/qrouter-1.4.71/lef.c:3761: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(CIFLayer[lefl->type], lefl->lefName);
data/qrouter-1.4.71/output.c:288:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		    sprintf(nodestr, "PIN/%s", g->gatename);
data/qrouter-1.4.71/output.c:293:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		    sprintf(nodestr, "%s/%s", g->gatename, g->node[i]);
data/qrouter-1.4.71/output.c:2823:6:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	    sprintf(extfilename, "%s.def", DEFfilename);
data/qrouter-1.4.71/output.c:2841: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(newDEFfile, filename);
data/qrouter-1.4.71/output.c:2857:9:  [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(newDEFfile, filename);
data/qrouter-1.4.71/output.c:2925:10:  [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(lptr, "%s", netname);
data/qrouter-1.4.71/output.c:3053:7:  [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(lptr, "%s", netname);
data/qrouter-1.4.71/qconfig.c:238:15:  [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.
	    if ((i = sscanf(lineptr, "%*s %s\n", sarg)) == 1) {
data/qrouter-1.4.71/qconfig.c:260:11:  [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.
	if ((i = sscanf(lineptr, "layer_%d_name %s", &iarg2, sarg)) == 2) {
data/qrouter-1.4.71/qconfig.c:262:17:  [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).
	       OK = 1; strcpy(CIFLayer[iarg2 - 1], sarg);
data/qrouter-1.4.71/qconfig.c:371:11:  [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.
	if ((i = sscanf(lineptr, "do not route node %s\n", sarg)) == 1) {
data/qrouter-1.4.71/qconfig.c:376:11:  [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.
	if ((i = sscanf(lineptr, "route priority %s\n", sarg)) == 1) {
data/qrouter-1.4.71/qconfig.c:381:11:  [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.
	if ((i = sscanf(lineptr, "critical net %s\n", sarg)) == 1) {
data/qrouter-1.4.71/qconfig.c:411:11:  [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.
	if ((i = sscanf(lineptr, "obstruction %lf %lf %lf %lf %s\n",
data/qrouter-1.4.71/qconfig.c:437:11:  [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.
	if ((i = sscanf(lineptr, "gate %s %lf %lf\n", sarg, &darg, &darg2)) == 3) {
data/qrouter-1.4.71/qconfig.c:464:18:  [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.
        if ((i = sscanf(lineptr, "endgate %s\n", sarg)) == 1) {
data/qrouter-1.4.71/qconfig.c:473:11:  [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.
	if ((i = sscanf(lineptr, "pin %s %lf %lf\n", sarg, &darg, &darg2)) == 3) {
data/qrouter-1.4.71/qrouter.c:446:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf(DEFfilename, "%s.def", Filename);
data/qrouter-1.4.71/qrouter.h:485:20:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
   #define Fprintf fprintf
data/qrouter-1.4.71/qrouter.h:487:20:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
   #define Vprintf vfprintf
data/qrouter-1.4.71/tclqrouter.c:269: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 (outstr + 19, (f == stderr) ? "err \"" : "out \"");
data/qrouter-1.4.71/tclqrouter.c:277:13:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
   nchars = vsnprintf(outptr + 24, 102, fmt, args);
data/qrouter-1.4.71/tclqrouter.c:285:7:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
      vsnprintf(outptr + 24, nchars + 2, fmt, args);
data/qrouter-1.4.71/tclqrouter.c:373:2:  [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(substcmd, postcmd);
data/qrouter-1.4.71/tclqrouter.c:402:7:  [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(newcmd, substcmd);
data/qrouter-1.4.71/tclqrouter.c:405: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(newcmd + (int)(sptr - substcmd), sptr + 2);
data/qrouter-1.4.71/tclqrouter.c:408: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(newcmd + (int)(sptr - substcmd), tkpath);
data/qrouter-1.4.71/tclqrouter.c:409:4:  [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(newcmd, sptr + 2);
data/qrouter-1.4.71/tclqrouter.c:422:7:  [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(newcmd, substcmd);
data/qrouter-1.4.71/tclqrouter.c:423:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
		    sprintf(newcmd + (int)(sptr - substcmd), "\"%s\"", sres);
data/qrouter-1.4.71/tclqrouter.c:424:7:  [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(newcmd, sptr + 2);
data/qrouter-1.4.71/tclqrouter.c:436:11:  [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(newcmd, substcmd);
data/qrouter-1.4.71/tclqrouter.c:437: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(newcmd + (int)(sptr - substcmd),
data/qrouter-1.4.71/tclqrouter.c:439:4:  [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(newcmd, sptr + 2);
data/qrouter-1.4.71/tclqrouter.c:447:11:  [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(newcmd, substcmd);
data/qrouter-1.4.71/tclqrouter.c:448: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(newcmd + (int)(sptr - substcmd), sptr + 2);
data/qrouter-1.4.71/tclqrouter.c:461:7:  [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(newcmd, substcmd);
data/qrouter-1.4.71/tclqrouter.c:464:10:  [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(newcmd, Tcl_GetString(objv[i]));
data/qrouter-1.4.71/tclqrouter.c:469:7:  [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(newcmd, sptr + 2);
data/qrouter-1.4.71/tclqrouter.c:477:7:  [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(newcmd, substcmd);
data/qrouter-1.4.71/tclqrouter.c:478:7:  [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(newcmd + (int)(sptr - substcmd), sptr + 1);
data/qrouter-1.4.71/tclqrouter.c:583:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf(command + 9, "%s", qrouter_commands[cmdidx].cmdstr);
data/qrouter-1.4.71/tclqrouter.c:597:4:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
   sprintf(version_string, "%s", VERSION);
data/qrouter-1.4.71/antenna.c:1290:9:  [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).
	fout = fopen("antenna.out", "w");
data/qrouter-1.4.71/def.c:745: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 instname[MAX_NAME_LEN], pinname[MAX_NAME_LEN];
data/qrouter-1.4.71/def.c:866:8:  [2] (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 string.
			    strcpy(pinname, "pin");
data/qrouter-1.4.71/def.c:1100: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 pinname[MAX_NAME_LEN];
data/qrouter-1.4.71/def.c:1370: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 vianame[LEF_LINE_MAX];
data/qrouter-1.4.71/def.c:1617: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 usename[512];
data/qrouter-1.4.71/def.c:1962: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 filename[256];
data/qrouter-1.4.71/def.c:2012:9:  [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).
    f = fopen(filename, "r");
data/qrouter-1.4.71/delays.c:428:14:  [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).
	delayFile = fopen(delayfilename, "w");
data/qrouter-1.4.71/delays.c:430:14:  [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).
	delayFile = fopen(filename, "w");
data/qrouter-1.4.71/lef.c:206: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.
    static char line[LEF_LINE_MAX + 2];	/* input buffer */
data/qrouter-1.4.71/lef.c:359: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 *match_name[2];
data/qrouter-1.4.71/lef.c:2228: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 *token, tsave[128];
data/qrouter-1.4.71/lef.c:2263: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 newname[256];
data/qrouter-1.4.71/lef.c:2396:3:  [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(tsave, "%.127s", token);
data/qrouter-1.4.71/lef.c:3252: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 *newViaXX[MAX_LAYERS];
data/qrouter-1.4.71/lef.c:3253: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 *newViaXY[MAX_LAYERS];
data/qrouter-1.4.71/lef.c:3254: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 *newViaYX[MAX_LAYERS];
data/qrouter-1.4.71/lef.c:3255: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 *newViaYY[MAX_LAYERS];
data/qrouter-1.4.71/lef.c:3489: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 filename[256];
data/qrouter-1.4.71/lef.c:3491: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 tsave[128];
data/qrouter-1.4.71/lef.c:3534:9:  [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).
    f = fopen(filename, "r");
data/qrouter-1.4.71/lef.c:3585:3:  [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(tsave, "%.127s", token);
data/qrouter-1.4.71/lef.c:3592:3:  [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(tsave, "%.127s", token);
data/qrouter-1.4.71/lef.c:3635:3:  [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(tsave, "%.127s", token);
data/qrouter-1.4.71/lef.c:3664:3:  [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(tsave, "%.127s", token);
data/qrouter-1.4.71/lef.c:3694:3:  [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(tsave, "%.127s", token);
data/qrouter-1.4.71/lef.c:3726:2:  [2] (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 string.
	strcpy(gateginfo->gatename, "pin");
data/qrouter-1.4.71/output.c:57:13:  [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).
    ffail = fopen(filename, "w");
data/qrouter-1.4.71/output.c:301:5:  [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(nodestr, "(error: no such node)");
data/qrouter-1.4.71/output.c:324:6:  [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).
	o = fopen(filename, "w");
data/qrouter-1.4.71/output.c:360:6:  [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).
	o = fopen( filename, "w" );
data/qrouter-1.4.71/output.c:395:6:  [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).
	o = fopen( filename, "w" );
data/qrouter-1.4.71/output.c:540:6:  [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).
	o = fopen(filename, "w");
data/qrouter-1.4.71/output.c:588:6:  [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).
	o = fopen(filename, "w");
data/qrouter-1.4.71/output.c:2808: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 line[MAX_LINE_LEN + 1], *lptr = NULL;
data/qrouter-1.4.71/output.c:2809: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 netname[MAX_NAME_LEN];
data/qrouter-1.4.71/output.c:2819:12:  [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).
    fdef = fopen(DEFfilename, "r");
data/qrouter-1.4.71/output.c:2824:13:  [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).
	    fdef = fopen(extfilename, "r");
data/qrouter-1.4.71/output.c:2844:3:  [2] (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 string.
		strcpy(dotptr, "_route.def");
data/qrouter-1.4.71/output.c:2846: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(newDEFfile, "_route.def");
data/qrouter-1.4.71/output.c:2848:12:  [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).
	    Cmd = fopen(newDEFfile, "w");
data/qrouter-1.4.71/output.c:2854:15:  [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).
	       Cmd = fopen(filename, "w");
data/qrouter-1.4.71/output.c:2858:9:  [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(newDEFfile, ".def");
data/qrouter-1.4.71/output.c:2859:15:  [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).
	       Cmd = fopen(newDEFfile, "w");
data/qrouter-1.4.71/qconfig.c:35: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    CIFLayer[MAX_TYPES][50];	// CIF layer name
data/qrouter-1.4.71/qconfig.c:60: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    *ViaXX[MAX_LAYERS];
data/qrouter-1.4.71/qconfig.c:61: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    *ViaXY[MAX_LAYERS];
data/qrouter-1.4.71/qconfig.c:62: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    *ViaYX[MAX_LAYERS];
data/qrouter-1.4.71/qconfig.c:63: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    *ViaYY[MAX_LAYERS];
data/qrouter-1.4.71/qconfig.c:197: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 sarg[MAX_LINE_LEN];
data/qrouter-1.4.71/qconfig.c:198: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   line[MAX_LINE_LEN];
data/qrouter-1.4.71/qconfig.c:208:6:  [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(line, "via%d%d", i + 1, i + 2);
data/qrouter-1.4.71/qconfig.h:18:8:  [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.
extern char    CIFLayer[MAX_TYPES][50]; // CIF layer name 
data/qrouter-1.4.71/qconfig.h:44:8:  [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.
extern char    *ViaXX[MAX_LAYERS];	// Top and bottom horizontal
data/qrouter-1.4.71/qconfig.h:45:8:  [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.
extern char    *ViaXY[MAX_LAYERS];	// Bottom horizontal, top vertical
data/qrouter-1.4.71/qconfig.h:46:8:  [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.
extern char    *ViaYX[MAX_LAYERS];	// Bottom vertial, top horizontal
data/qrouter-1.4.71/qconfig.h:47:8:  [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.
extern char    *ViaYY[MAX_LAYERS];	// Top and bottom vertical
data/qrouter-1.4.71/qrouter.c:306:19:  [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).
	       Verbose = atoi(optarg);
data/qrouter-1.4.71/qrouter.c:343:27:  [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).
	       minEffort = 100 * atoi(optarg);
data/qrouter-1.4.71/qrouter.c:346:21:  [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).
	       minEffort = atoi(optarg);
data/qrouter-1.4.71/qrouter.c:368:21:  [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).
      infoFILEptr = fopen(infofile, "w" );
data/qrouter-1.4.71/qrouter.c:379:23:  [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).
      configFILEptr = fopen(configfile, "r");
data/qrouter-1.4.71/tclqrouter.c:236:7:  [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(snew, s, slen);
data/qrouter-1.4.71/tclqrouter.c:252:11:  [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 outstr[128] = "puts -nonewline std";
data/qrouter-1.4.71/tclqrouter.c:549: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 command[256];
data/qrouter-1.4.71/tclqrouter.c:550: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 version_string[20];
data/qrouter-1.4.71/tclqrouter.c:562:4:  [2] (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 string.
   strcpy(command, "qrouter::");
data/qrouter-1.4.71/tclqrouter.c:653:18:  [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).
	FILE *scriptf = fopen(scriptfile, "r");
data/qrouter-1.4.71/tclqrouter.c:1832:18:  [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).
    configFILE = fopen(configname, "r");
data/qrouter-1.4.71/tkSimple.c:258: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 *) simplePtr, Tcl_GetString(objv[2]), 0);
data/qrouter-1.4.71/tkSimple.c:267:8:  [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 *) simplePtr, Tcl_GetString(objv[2]), 0);
data/qrouter-1.4.71/def.c:1173:7:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
		if (sscanf(token, "%2047s", pinname) != 1)
data/qrouter-1.4.71/def.c:1409:7:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
		if (sscanf(token, "%2047s", vianame) != 1)
data/qrouter-1.4.71/def.c:1668:7:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
		if (sscanf(token, "%511s", usename) != 1)
data/qrouter-1.4.71/def.c:2092: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(token) != 1) {
data/qrouter-1.4.71/graphics.c:709:29:  [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).
   waitcmd = (char *)malloc(strlen(qrouterdrawwin) + 20);
data/qrouter-1.4.71/lef.c:3597:38:  [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).
		    char *vianame = (char *)malloc(strlen(token) + 3);
data/qrouter-1.4.71/lef.c:3812:19:  [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).
		    *(vianame + strlen(vianame) - 1) = '1';
data/qrouter-1.4.71/lef.c:3866:19:  [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).
		    *(vianame + strlen(vianame) - 1) = '2';
data/qrouter-1.4.71/lef.c:3902:19:  [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).
		    *(vianame + strlen(vianame) - 1) = '3';
data/qrouter-1.4.71/output.c:287:32:  [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).
		    nodestr = (char *)malloc(strlen(g->gatename) + 5);
data/qrouter-1.4.71/output.c:291:32:  [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).
		    nodestr = (char *)malloc(strlen(g->gatename)
data/qrouter-1.4.71/output.c:292: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).
				+ strlen(g->node[i]) + 2);
data/qrouter-1.4.71/output.c:2822:33:  [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).
	    char *extfilename = malloc(strlen(DEFfilename) + 5);
data/qrouter-1.4.71/output.c:2840:40:  [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).
	    char *newDEFfile = (char *)malloc(strlen(filename) + 11);
data/qrouter-1.4.71/output.c:2856:43:  [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).
	       char *newDEFfile = (char *)malloc(strlen(filename) + 11);
data/qrouter-1.4.71/qrouter.c:445:36:  [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).
      DEFfilename = (char *)malloc(strlen(Filename) + 5);
data/qrouter-1.4.71/tclqrouter.c:233:15:  [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).
   slen = 1 + strlen(s);
data/qrouter-1.4.71/tclqrouter.c:283:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
      strncpy(bigstr, outptr, 24);
data/qrouter-1.4.71/tclqrouter.c:299:7:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
      strncpy(finalstr, outptr, 24);
data/qrouter-1.4.71/tclqrouter.c:334:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
   strncpy(stdptr, (f == stderr) ? "err" : "out", 3);
data/qrouter-1.4.71/tclqrouter.c:372:31:  [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).
	substcmd = (char *)Tcl_Alloc(strlen(postcmd) + 1);
data/qrouter-1.4.71/tclqrouter.c:398:31:  [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).
			newcmd = (char *)Tcl_Alloc(strlen(substcmd));
data/qrouter-1.4.71/tclqrouter.c:400:31:  [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).
			newcmd = (char *)Tcl_Alloc(strlen(substcmd) + strlen(tkpath));
data/qrouter-1.4.71/tclqrouter.c:400:50:  [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).
			newcmd = (char *)Tcl_Alloc(strlen(substcmd) + strlen(tkpath));
data/qrouter-1.4.71/tclqrouter.c:420:34:  [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).
		    newcmd = (char *)Tcl_Alloc(strlen(substcmd)
data/qrouter-1.4.71/tclqrouter.c:421: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).
				+ strlen(sres) + 1);
data/qrouter-1.4.71/tclqrouter.c:434:38:  [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).
		        newcmd = (char *)Tcl_Alloc(strlen(substcmd)
data/qrouter-1.4.71/tclqrouter.c:435: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).
				+ strlen(Tcl_GetString(objv[objidx])));
data/qrouter-1.4.71/tclqrouter.c:446:38:  [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).
		        newcmd = (char *)Tcl_Alloc(strlen(substcmd) + 1);
data/qrouter-1.4.71/tclqrouter.c:459:23:  [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).
		       llen += (1 + strlen(Tcl_GetString(objv[i])));
data/qrouter-1.4.71/tclqrouter.c:460:34:  [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).
		    newcmd = (char *)Tcl_Alloc(strlen(substcmd) + llen);
data/qrouter-1.4.71/tclqrouter.c:462:7:  [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(newcmd + (int)(sptr - substcmd), "{");
data/qrouter-1.4.71/tclqrouter.c:466:6:  [1] (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 character.
			  strcat(newcmd, " ");
data/qrouter-1.4.71/tclqrouter.c:468:7:  [1] (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 character.
		    strcat(newcmd, "}");
data/qrouter-1.4.71/tclqrouter.c:476:34:  [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).
		    newcmd = (char *)Tcl_Alloc(strlen(substcmd) + 1);
data/qrouter-1.4.71/tclqrouter.c:529:9:  [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(Tcl_GetString(objv[2])) == 0)

ANALYSIS SUMMARY:

Hits = 163
Lines analyzed = 27955 in approximately 0.72 seconds (38920 lines/second)
Physical Source Lines of Code (SLOC) = 19446
Hits@level = [0] 155 [1]  36 [2]  72 [3]   0 [4]  55 [5]   0
Hits@level+ = [0+] 318 [1+] 163 [2+] 127 [3+]  55 [4+]  55 [5+]   0
Hits/KSLOC@level+ = [0+] 16.353 [1+] 8.38219 [2+] 6.53091 [3+] 2.82835 [4+] 2.82835 [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.