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/msp430-libc-20120224/include/bits/byteswap.h Examining data/msp430-libc-20120224/include/errno.h Examining data/msp430-libc-20120224/include/signal.h Examining data/msp430-libc-20120224/include/isr_compat.h Examining data/msp430-libc-20120224/include/debug.h Examining data/msp430-libc-20120224/include/byteswap.h Examining data/msp430-libc-20120224/include/stdio.h Examining data/msp430-libc-20120224/include/stdlib.h Examining data/msp430-libc-20120224/include/limits.h Examining data/msp430-libc-20120224/include/math.h Examining data/msp430-libc-20120224/include/ctype.h Examining data/msp430-libc-20120224/include/setjmp.h Examining data/msp430-libc-20120224/include/inttypes.h Examining data/msp430-libc-20120224/include/sys/config.h Examining data/msp430-libc-20120224/include/sys/crtld.h Examining data/msp430-libc-20120224/include/sys/_ansi.h Examining data/msp430-libc-20120224/include/sys/_types.h Examining data/msp430-libc-20120224/include/sys/fdlibm.h Examining data/msp430-libc-20120224/include/sys/ieeefp.h Examining data/msp430-libc-20120224/include/sys/inttypes.h Examining data/msp430-libc-20120224/include/sys/cdefs.h Examining data/msp430-libc-20120224/include/sys/types.h Examining data/msp430-libc-20120224/include/sys/reent.h Examining data/msp430-libc-20120224/include/legacymsp430.h Examining data/msp430-libc-20120224/include/string.h Examining data/msp430-libc-20120224/include/stdint.h Examining data/msp430-libc-20120224/include/msp430libc.h Examining data/msp430-libc-20120224/include/endian.h Examining data/msp430-libc-20120224/src/stdlib/utoa.c Examining data/msp430-libc-20120224/src/stdlib/bsearch.c Examining data/msp430-libc-20120224/src/stdlib/sprintf.c Examining data/msp430-libc-20120224/src/stdlib/vuprintf.c Examining data/msp430-libc-20120224/src/stdlib/uprintf.c Examining data/msp430-libc-20120224/src/stdlib/abs.c Examining data/msp430-libc-20120224/src/stdlib/strtol.c Examining data/msp430-libc-20120224/src/stdlib/atol.c Examining data/msp430-libc-20120224/src/stdlib/ultoa.c Examining data/msp430-libc-20120224/src/stdlib/rand.c Examining data/msp430-libc-20120224/src/stdlib/printf.c Examining data/msp430-libc-20120224/src/stdlib/labs.c Examining data/msp430-libc-20120224/src/stdlib/ltoa.c Examining data/msp430-libc-20120224/src/stdlib/atoi.c Examining data/msp430-libc-20120224/src/stdlib/strtoul.c Examining data/msp430-libc-20120224/src/stdlib/malloc.c Examining data/msp430-libc-20120224/src/stdlib/itoa.c Examining data/msp430-libc-20120224/src/stdlib/puts.c Examining data/msp430-libc-20120224/src/stdlib/errno.c Examining data/msp430-libc-20120224/src/libm/ef_cosh.c Examining data/msp430-libc-20120224/src/libm/sf_nan.c Examining data/msp430-libc-20120224/src/libm/sf_scalbn.c Examining data/msp430-libc-20120224/src/libm/sf_frexp.c Examining data/msp430-libc-20120224/src/libm/sf_cbrt.c Examining data/msp430-libc-20120224/src/libm/sf_erf.c Examining data/msp430-libc-20120224/src/libm/sf_rint.c Examining data/msp430-libc-20120224/src/libm/lesf.c Examining data/msp430-libc-20120224/src/libm/subsf.c Examining data/msp430-libc-20120224/src/libm/mulsf.c Examining data/msp430-libc-20120224/src/libm/sf_cos.c Examining data/msp430-libc-20120224/src/libm/sf_ldexp.c Examining data/msp430-libc-20120224/src/libm/sf_isinf.c Examining data/msp430-libc-20120224/src/libm/ef_j0.c Examining data/msp430-libc-20120224/src/libm/ef_rem_pio2.c Examining data/msp430-libc-20120224/src/libm/sf_ceil.c Examining data/msp430-libc-20120224/src/libm/erf_lgamma.c Examining data/msp430-libc-20120224/src/libm/gtsf.c Examining data/msp430-libc-20120224/src/libm/sf_modf.c Examining data/msp430-libc-20120224/src/libm/sf_infinity.c Examining data/msp430-libc-20120224/src/libm/ef_asin.c Examining data/msp430-libc-20120224/src/libm/sf_logb.c Examining data/msp430-libc-20120224/src/libm/ef_exp.c Examining data/msp430-libc-20120224/src/libm/sf_log1p.c Examining data/msp430-libc-20120224/src/libm/sf_fabs.c Examining data/msp430-libc-20120224/src/libm/sf_tanh.c Examining data/msp430-libc-20120224/src/libm/fdlibm.h Examining data/msp430-libc-20120224/src/libm/ef_fmod.c Examining data/msp430-libc-20120224/src/libm/floatsisf.c Examining data/msp430-libc-20120224/src/libm/ef_acosh.c Examining data/msp430-libc-20120224/src/libm/sf_isnan.c Examining data/msp430-libc-20120224/src/libm/ef_sinh.c Examining data/msp430-libc-20120224/src/libm/sf_floor.c Examining data/msp430-libc-20120224/src/libm/divsf.c Examining data/msp430-libc-20120224/src/libm/floatdisf.c Examining data/msp430-libc-20120224/src/libm/ef_sqrt.c Examining data/msp430-libc-20120224/src/libm/fixunssfsi.c Examining data/msp430-libc-20120224/src/libm/ef_atanh.c Examining data/msp430-libc-20120224/src/libm/ef_j1.c Examining data/msp430-libc-20120224/src/libm/ltsf.c Examining data/msp430-libc-20120224/src/libm/sf_ilogb.c Examining data/msp430-libc-20120224/src/libm/sf_tan.c Examining data/msp430-libc-20120224/src/libm/sf_sin.c Examining data/msp430-libc-20120224/src/libm/sf_nextafter.c Examining data/msp430-libc-20120224/src/libm/sf_expm1.c Examining data/msp430-libc-20120224/src/libm/ef_hypot.c Examining data/msp430-libc-20120224/src/libm/sf_atan.c Examining data/msp430-libc-20120224/src/libm/cmpsf.c Examining data/msp430-libc-20120224/src/libm/erf_gamma.c Examining data/msp430-libc-20120224/src/libm/ef_log10.c Examining data/msp430-libc-20120224/src/libm/kf_rem_pio2.c Examining data/msp430-libc-20120224/src/libm/ef_atan2.c Examining data/msp430-libc-20120224/src/libm/nesf.c Examining data/msp430-libc-20120224/src/libm/addsf.c Examining data/msp430-libc-20120224/src/libm/sf_copysign.c Examining data/msp430-libc-20120224/src/libm/ef_log.c Examining data/msp430-libc-20120224/src/libm/ef_acos.c Examining data/msp430-libc-20120224/src/libm/gesf.c Examining data/msp430-libc-20120224/src/libm/fixunssfdi.c Examining data/msp430-libc-20120224/src/libm/kf_cos.c Examining data/msp430-libc-20120224/src/libm/fixsfsi.c Examining data/msp430-libc-20120224/src/libm/mathsf.h Examining data/msp430-libc-20120224/src/libm/sf_asinh.c Examining data/msp430-libc-20120224/src/libm/kf_tan.c Examining data/msp430-libc-20120224/src/libm/negsf.c Examining data/msp430-libc-20120224/src/libm/ef_jn.c Examining data/msp430-libc-20120224/src/libm/eqsf.c Examining data/msp430-libc-20120224/src/libm/ef_scalb.c Examining data/msp430-libc-20120224/src/libm/sf_finite.c Examining data/msp430-libc-20120224/src/libm/ef_pow.c Examining data/msp430-libc-20120224/src/libm/fixsfdi.c Examining data/msp430-libc-20120224/src/libm/sf_signif.c Examining data/msp430-libc-20120224/src/libm/ef_remainder.c Examining data/msp430-libc-20120224/src/libm/kf_sin.c Examining data/msp430-libc-20120224/src/string/strlen.c Examining data/msp430-libc-20120224/src/string/strcmp.c Examining data/msp430-libc-20120224/src/string/strcspn.c Examining data/msp430-libc-20120224/src/string/strncmp.c Examining data/msp430-libc-20120224/src/string/strncpy.c Examining data/msp430-libc-20120224/src/string/strncat.c Examining data/msp430-libc-20120224/src/string/memcmp.c Examining data/msp430-libc-20120224/src/string/isblank.c Examining data/msp430-libc-20120224/src/string/strdup.c Examining data/msp430-libc-20120224/src/string/toascii.c Examining data/msp430-libc-20120224/src/string/rindex.c Examining data/msp430-libc-20120224/src/string/strchr.c Examining data/msp430-libc-20120224/src/string/bcmp.c Examining data/msp430-libc-20120224/src/string/isspace.c Examining data/msp430-libc-20120224/src/string/strlcat.c Examining data/msp430-libc-20120224/src/string/isdigit.c Examining data/msp430-libc-20120224/src/string/strrchr.c Examining data/msp430-libc-20120224/src/string/strpbrk.c Examining data/msp430-libc-20120224/src/string/strspn.c Examining data/msp430-libc-20120224/src/string/ffs.c Examining data/msp430-libc-20120224/src/string/memmove.c Examining data/msp430-libc-20120224/src/string/isalpha.c Examining data/msp430-libc-20120224/src/string/swab.c Examining data/msp430-libc-20120224/src/string/bcopy.c Examining data/msp430-libc-20120224/src/string/memccpy.c Examining data/msp430-libc-20120224/src/string/bzero.c Examining data/msp430-libc-20120224/src/string/memset.c Examining data/msp430-libc-20120224/src/string/toupper.c Examining data/msp430-libc-20120224/src/string/strlcpy.c Examining data/msp430-libc-20120224/src/string/strcat.c Examining data/msp430-libc-20120224/src/string/strncasecmp.c Examining data/msp430-libc-20120224/src/string/isalnum.c Examining data/msp430-libc-20120224/src/string/isupper.c Examining data/msp430-libc-20120224/src/string/isxdigit.c Examining data/msp430-libc-20120224/src/string/tolower.c Examining data/msp430-libc-20120224/src/string/strtok.c Examining data/msp430-libc-20120224/src/string/strcpy.c Examining data/msp430-libc-20120224/src/string/ispunct.c Examining data/msp430-libc-20120224/src/string/memchr.c Examining data/msp430-libc-20120224/src/string/strsep.c Examining data/msp430-libc-20120224/src/string/strcasecmp.c Examining data/msp430-libc-20120224/src/string/strstr.c Examining data/msp430-libc-20120224/src/string/isprint.c Examining data/msp430-libc-20120224/src/string/isascii.c Examining data/msp430-libc-20120224/src/string/islower.c Examining data/msp430-libc-20120224/src/string/memcpy.c Examining data/msp430-libc-20120224/src/string/iscntrl.c Examining data/msp430-libc-20120224/src/string/index.c FINAL RESULTS: data/msp430-libc-20120224/include/stdio.h:49:28: [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. int __attribute__((format (printf, 2, 3))) uprintf(int (*func)(int c), const char *fmt, ...); data/msp430-libc-20120224/include/stdio.h:50:28: [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. int __attribute__((format (printf, 3, 4))) snprintf (char *buf, size_t size, const char *fmt, ...); data/msp430-libc-20120224/include/stdio.h:50:44: [4] (format) snprintf: 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. int __attribute__((format (printf, 3, 4))) snprintf (char *buf, size_t size, const char *fmt, ...); data/msp430-libc-20120224/include/stdio.h:51:28: [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. int __attribute__((format (printf, 2, 3))) sprintf (char *buf, const char *fmt, ...); data/msp430-libc-20120224/include/stdio.h:51:44: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. int __attribute__((format (printf, 2, 3))) sprintf (char *buf, const char *fmt, ...); data/msp430-libc-20120224/include/stdio.h:52:28: [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. int __attribute__((format (printf, 1, 2))) printf(const char *string, ...); data/msp430-libc-20120224/include/stdio.h:52:44: [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. int __attribute__((format (printf, 1, 2))) printf(const char *string, ...); data/msp430-libc-20120224/include/stdio.h:54:5: [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. int vsnprintf(char *dest, size_t maxlen, const char *string, va_list ap); data/msp430-libc-20120224/include/stdio.h:55:5: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. int vsprintf(char *dest, const char *string, va_list ap); data/msp430-libc-20120224/include/stdio.h:56:5: [4] (format) vprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. int vprintf(const char *string, va_list ap); data/msp430-libc-20120224/include/string.h:45:14: [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). extern char *strcat(char *, const char *); data/msp430-libc-20120224/include/string.h:48:14: [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). extern char *strcpy(char *, const char *); data/msp430-libc-20120224/src/stdlib/printf.c:36:1: [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. printf (const char *fmt, ...) data/msp430-libc-20120224/src/stdlib/printf.c:48:1: [4] (format) vprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. vprintf (const char *fmt, va_list argp) data/msp430-libc-20120224/src/stdlib/sprintf.c:72:1: [4] (format) sprintf: Potential format string problem (CWE-134). Make format string constant. sprintf (char *buf, const char *fmt, ...) data/msp430-libc-20120224/src/stdlib/sprintf.c:83:1: [4] (format) snprintf: 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. snprintf (char *buf, size_t size, const char *fmt, ...) data/msp430-libc-20120224/src/stdlib/sprintf.c:94:1: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. vsprintf (char *buf, const char *fmt, va_list argp) data/msp430-libc-20120224/src/stdlib/sprintf.c:102:1: [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 (char *buf, size_t size, const char *fmt, va_list argp) data/msp430-libc-20120224/src/string/strcat.c:32:1: [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(s, append) data/msp430-libc-20120224/src/string/strcpy.c:34:1: [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(to, from) data/msp430-libc-20120224/include/stdlib.h:108:6: [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. void srand(unsigned __seed); data/msp430-libc-20120224/src/stdlib/rand.c:70:1: [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. srand(unsigned int seed) data/msp430-libc-20120224/src/stdlib/rand.c:83:5: [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. srand(0x19610910); data/msp430-libc-20120224/include/stdlib.h:90:5: [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). int atoi(const char *p); data/msp430-libc-20120224/include/stdlib.h:91:6: [2] (integer) atol: 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). long atol(const char *p); data/msp430-libc-20120224/include/string.h:42:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. extern void *memcpy(void *, const void *, size_t); data/msp430-libc-20120224/include/string.h:63:13: [2] (buffer) bcopy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. extern void bcopy(const void *, void *, size_t); data/msp430-libc-20120224/include/sys/reent.h:140: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 _ubuf[3]; /* guarantee an ungetc() buffer */ data/msp430-libc-20120224/include/sys/reent.h:141: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 _nbuf[1]; /* guarantee a getc() buffer */ data/msp430-libc-20120224/include/sys/reent.h:199: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 _emergency[25]; data/msp430-libc-20120224/include/sys/reent.h:224: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. char _asctime_buf[26]; data/msp430-libc-20120224/include/sys/reent.h:236:20: [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 * _nextf[_N_LISTS]; data/msp430-libc-20120224/src/libm/mathsf.h:37:13: [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 Bytes[4]; data/msp430-libc-20120224/src/stdlib/atoi.c:6:5: [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). int atoi( const char *p) data/msp430-libc-20120224/src/stdlib/atol.c:6:1: [2] (integer) atol: 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). atol(const char *p) data/msp430-libc-20120224/src/stdlib/itoa.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 temp[17]; //an int can only be 16 bits long data/msp430-libc-20120224/src/stdlib/ltoa.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 temp[33]; //an int can only be 32 bits long data/msp430-libc-20120224/src/stdlib/ultoa.c:30: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 temp[33]; //an int can only be 16 bits long data/msp430-libc-20120224/src/stdlib/utoa.c:30: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 temp[17]; //an int can only be 16 bits long data/msp430-libc-20120224/src/stdlib/vuprintf.c:126: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 prefix_buffer[MAX_PREFIX_CHARS]; data/msp430-libc-20120224/src/stdlib/vuprintf.c:276: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 buffer[MAX_FORMAT_LENGTH]; // used to print numbers data/msp430-libc-20120224/src/string/bcopy.c:52:1: [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(dst0, src0, length) data/msp430-libc-20120224/src/string/bcopy.c:59:1: [2] (buffer) bcopy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. bcopy(src0, dst0, length) data/msp430-libc-20120224/src/string/strdup.c:44: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(copy, str, len); data/msp430-libc-20120224/src/string/strtok.c:127: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 test[80], blah[80]; data/msp430-libc-20120224/src/string/strtok.c:133: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(test, "This;is.a:test:of=the/string\\tokenizer-function."); data/msp430-libc-20120224/src/string/strtok.c:144: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(test, "This;is.a:test:of=the/string\\tokenizer-function."); data/msp430-libc-20120224/src/string/strtok.c:150:9: [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(blah, "blah:blat:blab:blag"); data/msp430-libc-20120224/include/string.h:50: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). extern size_t strlen(const char *); data/msp430-libc-20120224/include/string.h:52:14: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. extern char *strncat(char *, const char *, size_t); data/msp430-libc-20120224/include/string.h:54:14: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). extern char *strncpy(char *, const char *, size_t) ; data/msp430-libc-20120224/src/stdlib/vuprintf.c:138:26: [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). unsigned int len = strlen (char_p); data/msp430-libc-20120224/src/string/strdup.c:41: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). len = strlen(str) + 1; data/msp430-libc-20120224/src/string/strlcat.c:56: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). return(dlen + strlen(s)); data/msp430-libc-20120224/src/string/strlen.c:34:1: [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(str) data/msp430-libc-20120224/src/string/strncat.c:41:1: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. strncat(dst, src, n) data/msp430-libc-20120224/src/string/strncpy.c:41:1: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(dst, src, n) data/msp430-libc-20120224/src/string/strstr.c:47: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). len = strlen(find); ANALYSIS SUMMARY: Hits = 58 Lines analyzed = 14189 in approximately 0.45 seconds (31810 lines/second) Physical Source Lines of Code (SLOC) = 8411 Hits@level = [0] 10 [1] 10 [2] 25 [3] 3 [4] 20 [5] 0 Hits@level+ = [0+] 68 [1+] 58 [2+] 48 [3+] 23 [4+] 20 [5+] 0 Hits/KSLOC@level+ = [0+] 8.08465 [1+] 6.89573 [2+] 5.70681 [3+] 2.73451 [4+] 2.37784 [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.