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.