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/deal-3.1.9/ansidecl.h
Examining data/deal-3.1.9/dealtypes.c
Examining data/deal-3.1.9/tcl_dds.c
Examining data/deal-3.1.9/dist.c
Examining data/deal-3.1.9/ddsInline.h
Examining data/deal-3.1.9/getopt.h
Examining data/deal-3.1.9/vector.h
Examining data/deal-3.1.9/holdings.h
Examining data/deal-3.1.9/deal.c
Examining data/deal-3.1.9/maindeal.c
Examining data/deal-3.1.9/formats.h
Examining data/deal-3.1.9/ddsLookup.h
Examining data/deal-3.1.9/Holding.h
Examining data/deal-3.1.9/random.c
Examining data/deal-3.1.9/hand.c
Examining data/deal-3.1.9/additive.c
Examining data/deal-3.1.9/additive.h
Examining data/deal-3.1.9/stat.h
Examining data/deal-3.1.9/stringbox.c
Examining data/deal-3.1.9/ddsLookup.cpp
Examining data/deal-3.1.9/ddsInterface.h
Examining data/deal-3.1.9/dds.h
Examining data/deal-3.1.9/tcl_dist.h
Examining data/deal-3.1.9/makecounttable.c
Examining data/deal-3.1.9/deal.h
Examining data/deal-3.1.9/vector.c
Examining data/deal-3.1.9/stat.c
Examining data/deal-3.1.9/holdings.c
Examining data/deal-3.1.9/keywords.c
Examining data/deal-3.1.9/stringbox.h
Examining data/deal-3.1.9/keywords.h
Examining data/deal-3.1.9/formats.c
Examining data/deal-3.1.9/dealtypes.h
Examining data/deal-3.1.9/dds.cpp
Examining data/deal-3.1.9/tcl_incl.h
Examining data/deal-3.1.9/dist.h
Examining data/deal-3.1.9/deck.h
Examining data/deal-3.1.9/tcl_deal.c

FINAL RESULTS:

data/deal-3.1.9/deal.c:333:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
  sprintf(result,"%s|%s|%s|%s\n",1+s[0],1+s[1],1+s[2],1+s[3]);
data/deal-3.1.9/deal.c:367:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(rp,"          %c : %s\n",suit_chars[suit],a[NORTH][suit]);
data/deal-3.1.9/deal.c:372:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(rp," %c : %-13s  %c : %-13s\n",suit_chars[suit],a[WEST][suit],
data/deal-3.1.9/deal.c:378:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(rp,"          %c : %s\n",suit_chars[suit],a[SOUTH][suit]);
data/deal-3.1.9/deal.c:551:3:  [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(hstring,"%s %s %s %s",s[SPADES],s[HEARTS],s[DIAMONDS],s[CLUBS]);
data/deal-3.1.9/dealtypes.c:234:3:  [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(result,source);
data/deal-3.1.9/dist.c:222:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf(result,"shapeclass.binary %s {\n",command);
data/deal-3.1.9/dist.c:229:2:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
	sprintf(rptr,"%s",Tcl_GetStringFromObj(DFVal(set,i-1),&len));
data/deal-3.1.9/dist.c:388:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf(result,"shapeclass.binary %s {\n",name);
data/deal-3.1.9/holdings.c:394:3:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
  sprintf(slowName,"%s::%s",tclNamespace,name);
data/deal-3.1.9/keywords.c:80:3:  [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(dupKey,keyword);
data/deal-3.1.9/keywords.c:169: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(obj->bytes,key);
data/deal-3.1.9/tcl_deal.c:569:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf(tcl_command_string,"source %s",optarg);
data/deal-3.1.9/tcl_deal.c:576:7:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
      sprintf(tcl_command_string,"source %s",optarg);
data/deal-3.1.9/tcl_deal.c:603:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(tcl_command_string,"deal_loop %s",writecmd);
data/deal-3.1.9/tcl_deal.c:606:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(tcl_command_string,"deal_deck ; %s",writecmd);
data/deal-3.1.9/deal.c:191:24:  [3] (random) drand48:
  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.
   return dealt+(int) (drand48() *(double)(52-dealt));
data/deal-3.1.9/deal.c:193: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.
  return dealt+(int) (fast_mod((unsigned) random() , (52-dealt)));
data/deal-3.1.9/deal.h:134:9:  [3] (random) srandom:
  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.
#define srandom __srandom
data/deal-3.1.9/deal.h:135:9:  [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.
#define random __random
data/deal-3.1.9/deck.h:68:9:  [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.
#define random rand
data/deal-3.1.9/deck.h:69:9:  [3] (random) srandom:
  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.
#define srandom srand
data/deal-3.1.9/deck.h:69:17:  [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.
#define srandom srand
data/deal-3.1.9/deck.h:73:8:  [3] (random) drand48:
  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.
double drand48();
data/deal-3.1.9/getopt.h:145:12:  [3] (buffer) getopt:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
data/deal-3.1.9/getopt.h:147:12:  [3] (buffer) getopt:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
extern int getopt ();
data/deal-3.1.9/getopt.h:151:12:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
data/deal-3.1.9/getopt.h:164:12:  [3] (buffer) getopt:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
extern int getopt ();
data/deal-3.1.9/getopt.h:166:12:  [3] (buffer) getopt_long:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
extern int getopt_long ();
data/deal-3.1.9/tcl_deal.c:243:7:  [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.
  res=random();
data/deal-3.1.9/tcl_deal.c:281:5:  [3] (random) srandom:
  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.
    srandom(value);
data/deal-3.1.9/tcl_deal.c:509:3:  [3] (random) srandom:
  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.
  srandom(for_seeding ^ getpid());
data/deal-3.1.9/tcl_deal.c:516:19:  [3] (buffer) getopt:
  Some older implementations do not protect against internal buffer overflows
  (CWE-120, CWE-20). Check implementation on installation, or limit the size
  of all string inputs.
  while (-1!=(opt=getopt(argc,argv,"lve:S:N:E:W:i:ts:fo:VI:x:"))) {
data/deal-3.1.9/tcl_deal.c:564:7:  [3] (random) srandom:
  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.
      srandom(for_seeding);
data/deal-3.1.9/dds.cpp:73:10:  [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 cardRank[15], cardSuit[5], cardSeat[4];
data/deal-3.1.9/dds.cpp:916: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).
    fp2=fopen("stat.txt","w");
data/deal-3.1.9/dds.cpp:921: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).
    fp7=fopen("storett.txt","w");
data/deal-3.1.9/dds.cpp:922:10:  [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).
    fp11=fopen("rectt.txt", "w");
data/deal-3.1.9/dds.cpp:4320: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).
  fp=fopen("dump.txt", "w");
data/deal-3.1.9/dds.cpp:4493:8:  [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).
  fp11=fopen("rectt.txt", "a");
data/deal-3.1.9/dds.h:189: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 leastWin[4];
data/deal-3.1.9/dds.h:209: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 length[4][4];
data/deal-3.1.9/dds.h:473:17:  [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 unsigned char suitChar[4];
data/deal-3.1.9/dds.h:474:17:  [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 unsigned char rankChar[15];
data/deal-3.1.9/dds.h:475:17:  [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 unsigned char seatChar[4];
data/deal-3.1.9/dds.h:479:17:  [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 unsigned char cardRank[15], cardSuit[5], cardSeat[4];
data/deal-3.1.9/deal.c:122: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(dealp,&initializeOnce,sizeof(struct deck));
data/deal-3.1.9/deal.c:312: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 s[4][26];
data/deal-3.1.9/deal.c:314: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 *s1[4];
data/deal-3.1.9/deal.c:341: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 a[4][4][14];
data/deal-3.1.9/deal.c:342: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 *p[4][4];
data/deal-3.1.9/deal.c:359: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(p[hand][suit],"---");
data/deal-3.1.9/deal.c:382: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(rp,"---------------------------\n");
data/deal-3.1.9/deal.c:550: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 s[4][13],*sptr;
data/deal-3.1.9/dealtypes.c:208: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.
static char *holdingStrings[8192];
data/deal-3.1.9/dist.c:237:7:  [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(rptr,"\n}\n");
data/deal-3.1.9/dist.c:415:7:  [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(rptr,"\n}\n");
data/deal-3.1.9/dist.h:21:18:  [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.
typedef unsigned char HandDist[4];
data/deal-3.1.9/holdings.c:124:12:  [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).
extern int atoi(const char*);
data/deal-3.1.9/holdings.c:575:10:  [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).
    rank=atoi(string+1);
data/deal-3.1.9/stringbox.c:62:7:  [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 s[20];
data/deal-3.1.9/stringbox.c:63: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(s,"%d %d",row,column);
data/deal-3.1.9/tcl_deal.c:211:15:  [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).
  rotate_deal(atoi(argv[1]));
data/deal-3.1.9/tcl_deal.c:493: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 tcl_command_string[512];
data/deal-3.1.9/tcl_deal.c:560: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).
      for_seeding=atoi(optarg);
data/deal-3.1.9/tcl_deal.c:597:11:  [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).
    count=atoi(argv[1]);
data/deal-3.1.9/vector.c:96: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).
    vec->value[i-1]=atoi(argv[i]);
data/deal-3.1.9/deal.c:280:13:  [1] (buffer) getchar:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  while ((c=getchar()) != EOF) {
data/deal-3.1.9/deal.c:368: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).
    rp=rp+strlen(rp);
data/deal-3.1.9/deal.c:374: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).
    rp=rp+strlen(rp);
data/deal-3.1.9/deal.c:379: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).
    rp=rp+strlen(rp);
data/deal-3.1.9/dealtypes.c:231: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).
  hlength=strlen(source);
data/deal-3.1.9/dist.c:221:45:  [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).
      result=(char *)Tcl_Alloc(8*DIST_COUNT+strlen(command)+50);
data/deal-3.1.9/dist.c:223: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).
      rptr=result+strlen(result);
data/deal-3.1.9/dist.c:387:45:  [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).
      result=(char *)Tcl_Alloc(1+DIST_COUNT+strlen(name)+1024);
data/deal-3.1.9/dist.c:389: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).
      rptr=result+strlen(result);
data/deal-3.1.9/holdings.c:391:39:  [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).
  slowName=(char *)Tcl_Alloc(4+length+strlen(tclNamespace));
data/deal-3.1.9/holdings.c:397:37:  [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).
  objv[1]=Tcl_NewStringObj(slowName,strlen(slowName));
data/deal-3.1.9/keywords.c:79:20:  [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).
  dupKey=Tcl_Alloc(strlen(keyword)+1);
data/deal-3.1.9/keywords.c:167: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).
    obj->length=strlen(key);
data/deal-3.1.9/tcl_deal.c:479:67:  [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).
    Tcl_ListObjAppendElement(interp,list,Tcl_NewStringObj(argv[i],strlen(argv[i])));
data/deal-3.1.9/tcl_deal.c:609:52:  [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).
  command=Tcl_NewStringObj(tcl_command_string,(int)strlen(tcl_command_string));

ANALYSIS SUMMARY:

Hits = 82
Lines analyzed = 12779 in approximately 0.64 seconds (20062 lines/second)
Physical Source Lines of Code (SLOC) = 9411
Hits@level = [0] 128 [1]  15 [2]  33 [3]  18 [4]  16 [5]   0
Hits@level+ = [0+] 210 [1+]  82 [2+]  67 [3+]  34 [4+]  16 [5+]   0
Hits/KSLOC@level+ = [0+] 22.3143 [1+] 8.71321 [2+] 7.11933 [3+] 3.61279 [4+] 1.70014 [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.