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/tcllib-1.20+dfsg/modules/sha1/sha256.h
Examining data/tcllib-1.20+dfsg/modules/sha1/sha1.h
Examining data/tcllib-1.20+dfsg/modules/sha1/sha1.c
Examining data/tcllib-1.20+dfsg/modules/sha1/sha256.c
Examining data/tcllib-1.20+dfsg/modules/struct/queue/util.h
Examining data/tcllib-1.20+dfsg/modules/struct/queue/ms.c
Examining data/tcllib-1.20+dfsg/modules/struct/queue/q.c
Examining data/tcllib-1.20+dfsg/modules/struct/queue/m.c
Examining data/tcllib-1.20+dfsg/modules/struct/queue/m.h
Examining data/tcllib-1.20+dfsg/modules/struct/queue/q.h
Examining data/tcllib-1.20+dfsg/modules/struct/queue/ms.h
Examining data/tcllib-1.20+dfsg/modules/struct/queue/ds.h
Examining data/tcllib-1.20+dfsg/modules/struct/sets/s.c
Examining data/tcllib-1.20+dfsg/modules/struct/sets/m.c
Examining data/tcllib-1.20+dfsg/modules/struct/sets/m.h
Examining data/tcllib-1.20+dfsg/modules/struct/sets/ds.h
Examining data/tcllib-1.20+dfsg/modules/struct/sets/s.h
Examining data/tcllib-1.20+dfsg/modules/struct/tree/util.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/util.h
Examining data/tcllib-1.20+dfsg/modules/struct/tree/tn.h
Examining data/tcllib-1.20+dfsg/modules/struct/tree/ms.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/shimmer.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/tn.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/m.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/m.h
Examining data/tcllib-1.20+dfsg/modules/struct/tree/walk.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/t.c
Examining data/tcllib-1.20+dfsg/modules/struct/tree/ms.h
Examining data/tcllib-1.20+dfsg/modules/struct/tree/t.h
Examining data/tcllib-1.20+dfsg/modules/struct/tree/ds.h
Examining data/tcllib-1.20+dfsg/modules/struct/stack/util.h
Examining data/tcllib-1.20+dfsg/modules/struct/stack/s.c
Examining data/tcllib-1.20+dfsg/modules/struct/stack/ms.c
Examining data/tcllib-1.20+dfsg/modules/struct/stack/m.c
Examining data/tcllib-1.20+dfsg/modules/struct/stack/m.h
Examining data/tcllib-1.20+dfsg/modules/struct/stack/ms.h
Examining data/tcllib-1.20+dfsg/modules/struct/stack/ds.h
Examining data/tcllib-1.20+dfsg/modules/struct/stack/s.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/nacommon.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/methods.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/walk.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/util.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/util.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/node.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/global.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/objcmd.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/filter.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/methods.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/graph.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/global.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/arc.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/attr.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/attr.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/nacommon.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/graph.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/objcmd.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/walk.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/arcshimmer.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/node.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/ds.h
Examining data/tcllib-1.20+dfsg/modules/struct/graph/arc.c
Examining data/tcllib-1.20+dfsg/modules/struct/graph/nodeshimmer.c
Examining data/tcllib-1.20+dfsg/modules/ripemd/ripemd160_test.c
Examining data/tcllib-1.20+dfsg/modules/md5/md5.h
Examining data/tcllib-1.20+dfsg/modules/md5/md5.c
Examining data/tcllib-1.20+dfsg/modules/json/c/json.tab.c
Examining data/tcllib-1.20+dfsg/modules/json/c/json_y.h
Examining data/tcllib-1.20+dfsg/modules/md4/md4.c
Examining data/tcllib-1.20+dfsg/modules/md4/md4_check.c
Examining data/tcllib-1.20+dfsg/modules/md4/md4.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/p.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/pInt.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/tc.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/p.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/ms.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/ot.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/param.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/ot.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/m.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/m.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/tc.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/param.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/stack.c
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/stack.h
Examining data/tcllib-1.20+dfsg/modules/pt/rde_critcl/ms.h

FINAL RESULTS:

data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:606:21:  [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 YYFPRINTF fprintf
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1979:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(fullmessage, "%s %d bytes before end, around ``%.*s''",
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1984:5:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
    sprintf(fullmessage, "%s %d bytes before end",
data/tcllib-1.20+dfsg/modules/json/c/json_y.h:60:23:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#define TRACE(x) do { printf x ; fflush (stdout); } while (0)
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.c:84:11:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
    len = vsprintf(msg, pat, args);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.c:105:11:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
    len = vsprintf(msg, pat, args);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.c:122:11:  [4] (format) vsprintf:
  Potential format string problem (CWE-134). Make format string constant.
    len = vsprintf(msg, pat, args);
data/tcllib-1.20+dfsg/modules/struct/graph/methods.c:2694: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(objPtr->bytes, buffer);
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2661: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(objPtr->bytes, buffer);
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:853: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 const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1045: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 yymsgbuf[128];
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1688: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	buf[TCL_UTF_MAX];
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1882: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	buf[TCL_UTF_MAX];
data/tcllib-1.20+dfsg/modules/md4/md4.c:50: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.
static unsigned char PADDING[64] = {
data/tcllib-1.20+dfsg/modules/md4/md4.c:143: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 digest[16];                         /* message digest */
data/tcllib-1.20+dfsg/modules/md4/md4.c:146: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 bits[8];
data/tcllib-1.20+dfsg/modules/md4/md4.c:172: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 block[64];
data/tcllib-1.20+dfsg/modules/md4/md4.c:299: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 *)output)[i] = (char)value;
data/tcllib-1.20+dfsg/modules/md4/md4.h:67: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 buffer[64];                         /* input buffer */
data/tcllib-1.20+dfsg/modules/md4/md4_check.c:31:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char buf[80], *p;
data/tcllib-1.20+dfsg/modules/md4/md4_check.c:35:13:  [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.
        n = sprintf(p, "%02X", data[cn]);
data/tcllib-1.20+dfsg/modules/md4/md4_check.c:44:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char buf[256];
data/tcllib-1.20+dfsg/modules/md4/md4_check.c:45:14:  [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 r[16];
data/tcllib-1.20+dfsg/modules/md5/md5.c:54: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.
static unsigned char PADDING[64] = {
data/tcllib-1.20+dfsg/modules/md5/md5.c:155: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 digest[16]; MD5_CTX *mdContext;
data/tcllib-1.20+dfsg/modules/md5/md5.h:58: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 in[64];                              /* input buffer */
data/tcllib-1.20+dfsg/modules/md5/md5.h:63:26:  [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.
void MD5Final  (unsigned char digest[16], MD5_CTX *mdContext);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/m.c:132:6:  [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(lv + 3, av, ac * sizeof (Tcl_Obj*));
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/p.c:169:5:  [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 (s, str, n);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/tc.c:101:5:  [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 (tc->str + off, string, len);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.c:71: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 msg [1024*1024];
data/tcllib-1.20+dfsg/modules/ripemd/ripemd160_test.c:105:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char buf[80], *p;
data/tcllib-1.20+dfsg/modules/ripemd/ripemd160_test.c:109:13:  [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.
        n = sprintf(p, "%02X", data[cn]);
data/tcllib-1.20+dfsg/modules/ripemd/ripemd160_test.c:119:14:  [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 hash[EVP_MAX_MD_SIZE];
data/tcllib-1.20+dfsg/modules/sha1/sha1.c:138:11:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    (void)memcpy(block, buffer, 64);
data/tcllib-1.20+dfsg/modules/sha1/sha1.c:228:8:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
	(void)memcpy(&context->buffer[j], data, (i = 64-j));
data/tcllib-1.20+dfsg/modules/sha1/sha1.c:236:11:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
    (void)memcpy(&context->buffer[j], &data[i], len - i);
data/tcllib-1.20+dfsg/modules/sha1/sha256.c:238: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 buf[128];
data/tcllib-1.20+dfsg/modules/sha1/sha256.c:377:5:  [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 (&sc->buffer.bytes[sc->bufferLength], dataPtr, bytesToCopy);
data/tcllib-1.20+dfsg/modules/sha1/sha256.c:403:5:  [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 (&sc->buffer.bytes[sc->bufferLength], dataPtr, len);
data/tcllib-1.20+dfsg/modules/sha1/sha256.c:417:5:  [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 (&sc->buffer.bytes[sc->bufferLength], dataPtr, bytesToCopy);
data/tcllib-1.20+dfsg/modules/sha1/sha256.c:481: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 buf[1000];
data/tcllib-1.20+dfsg/modules/struct/graph/arcshimmer.c:52:5:  [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 (obj->bytes, a->base.name->bytes, obj->length + 1);
data/tcllib-1.20+dfsg/modules/struct/graph/ds.h:153: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 handle [50];
data/tcllib-1.20+dfsg/modules/struct/graph/ds.h:164:5:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    char     buf [50]; /* Buffer for handle construction */
data/tcllib-1.20+dfsg/modules/struct/graph/global.c:27: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 (gg->buf, "graph%d", gg->counter);
data/tcllib-1.20+dfsg/modules/struct/graph/graph.c:82:2:  [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 (g->handle, "node%d", g->ncounter);
data/tcllib-1.20+dfsg/modules/struct/graph/graph.c:102:2:  [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 (g->handle, "arc%d", g->acounter);
data/tcllib-1.20+dfsg/modules/struct/graph/methods.c:2684: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 buffer[TCL_INTEGER_SPACE + sizeof("end") + 1];
data/tcllib-1.20+dfsg/modules/struct/graph/methods.c:2687:5:  [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(buffer, "end");
data/tcllib-1.20+dfsg/modules/struct/graph/methods.c:2901:2:  [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", n);
data/tcllib-1.20+dfsg/modules/struct/graph/nodeshimmer.c:52:5:  [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 (obj->bytes, n->base.name->bytes, obj->length + 1);
data/tcllib-1.20+dfsg/modules/struct/tree/ds.h:99: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 handle [50];
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2651: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 buffer[TCL_INTEGER_SPACE + sizeof("end") + 1];
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2654:5:  [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(buffer, "end");
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2868:2:  [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", n);
data/tcllib-1.20+dfsg/modules/struct/tree/shimmer.c:52:5:  [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 (obj->bytes, n->name->bytes, obj->length + 1);
data/tcllib-1.20+dfsg/modules/struct/tree/t.c:388:2:  [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 (t->handle, "node%d", t->counter);
data/tcllib-1.20+dfsg/modules/struct/tree/walk.c:299:2:  [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 (nv, tdn->child, nc*sizeof(TN*));
data/tcllib-1.20+dfsg/modules/struct/tree/walk.c:342:2:  [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 (nv, tdn->child, nc*sizeof(TN*));
data/tcllib-1.20+dfsg/modules/struct/tree/walk.c:404:6:  [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 (nv, tdn->child, nc*sizeof(TN*));
data/tcllib-1.20+dfsg/modules/struct/tree/walk.c:485:2:  [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 (nv, tdn->child, nc*sizeof(TN*));
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:753:21:  [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).
#   define yystrlen strlen
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1977: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).
    fullmessage = Tcl_Alloc(strlen(message) + 63 + yyleng);
data/tcllib-1.20+dfsg/modules/json/c/json.tab.c:1982: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).
    fullmessage = Tcl_Alloc(strlen(message) + 63);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/p.c:166: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).
    int   n = strlen(str);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/tc.c:73:8:  [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).
	len = strlen (string);
data/tcllib-1.20+dfsg/modules/pt/rde_critcl/util.c:51:22:  [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).
	fwrite(top->str, 1, strlen(top->str), stdout);
data/tcllib-1.20+dfsg/modules/struct/graph/methods.c:2902: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).
	return strlen(buffer);
data/tcllib-1.20+dfsg/modules/struct/sets/s.c:125: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).
	lenPtr [i] = strlen (elem);
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2454:10:  [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 [rem+1]))) {
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2528:10:  [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 [rem]))) {
data/tcllib-1.20+dfsg/modules/struct/tree/m.c:2869: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).
	return strlen(buffer);

ANALYSIS SUMMARY:

Hits = 73
Lines analyzed = 27083 in approximately 1.00 seconds (27082 lines/second)
Physical Source Lines of Code (SLOC) = 15565
Hits@level = [0]  37 [1]  11 [2]  53 [3]   0 [4]   9 [5]   0
Hits@level+ = [0+] 110 [1+]  73 [2+]  62 [3+]   9 [4+]   9 [5+]   0
Hits/KSLOC@level+ = [0+] 7.06714 [1+] 4.69001 [2+] 3.9833 [3+] 0.57822 [4+] 0.57822 [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.