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/wide-dhcpv6-20080615/addrconf.h Examining data/wide-dhcpv6-20080615/auth.c Examining data/wide-dhcpv6-20080615/auth.h Examining data/wide-dhcpv6-20080615/base64.c Examining data/wide-dhcpv6-20080615/base64.h Examining data/wide-dhcpv6-20080615/cfparse.c Examining data/wide-dhcpv6-20080615/control.h Examining data/wide-dhcpv6-20080615/dhcp6_ctl.h Examining data/wide-dhcpv6-20080615/dhcp6c.h Examining data/wide-dhcpv6-20080615/dhcp6c_ia.h Examining data/wide-dhcpv6-20080615/lease.h Examining data/wide-dhcpv6-20080615/prefixconf.h Examining data/wide-dhcpv6-20080615/timer.h Examining data/wide-dhcpv6-20080615/y.tab.h Examining data/wide-dhcpv6-20080615/missing/arc4random.h Examining data/wide-dhcpv6-20080615/missing/strlcat.c Examining data/wide-dhcpv6-20080615/missing/strlcpy.c Examining data/wide-dhcpv6-20080615/missing/daemon.c Examining data/wide-dhcpv6-20080615/missing/err.h Examining data/wide-dhcpv6-20080615/missing/warnx.c Examining data/wide-dhcpv6-20080615/missing/ifaddrs.h Examining data/wide-dhcpv6-20080615/missing/sys/queue.h Examining data/wide-dhcpv6-20080615/missing/arc4random.c Examining data/wide-dhcpv6-20080615/missing/getifaddrs.c Examining data/wide-dhcpv6-20080615/common.h Examining data/wide-dhcpv6-20080615/dhcp6c_ia.c Examining data/wide-dhcpv6-20080615/dhcp6c_script.c Examining data/wide-dhcpv6-20080615/dhcp6relay_script.c Examining data/wide-dhcpv6-20080615/lease.c Examining data/wide-dhcpv6-20080615/timer.c Examining data/wide-dhcpv6-20080615/addrconf.c Examining data/wide-dhcpv6-20080615/cftoken.c Examining data/wide-dhcpv6-20080615/dhcp6_ctlclient.c Examining data/wide-dhcpv6-20080615/dhcp6relay.c Examining data/wide-dhcpv6-20080615/if.c Examining data/wide-dhcpv6-20080615/common.c Examining data/wide-dhcpv6-20080615/dhcp6.h Examining data/wide-dhcpv6-20080615/dhcp6c.c Examining data/wide-dhcpv6-20080615/dhcp6_ctl.c Examining data/wide-dhcpv6-20080615/dhcp6s.c Examining data/wide-dhcpv6-20080615/config.h Examining data/wide-dhcpv6-20080615/prefixconf.c Examining data/wide-dhcpv6-20080615/config.c FINAL RESULTS: data/wide-dhcpv6-20080615/cfparse.c:940: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/wide-dhcpv6-20080615/cftoken.c:2495:9: [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. bp += vsnprintf(bp, ep - bp, s, ap); data/wide-dhcpv6-20080615/common.c:3235:2: [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(logbuf, sizeof(logbuf), fmt, ap); data/wide-dhcpv6-20080615/dhcp6c.c:2210:2: [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(logbuf, sizeof(logbuf), fmt, ap); data/wide-dhcpv6-20080615/missing/getifaddrs.c:121:10: [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). (void) strcpy(ifa->ifa_name = buf, lifrp->lifr_name); data/wide-dhcpv6-20080615/missing/warnx.c:46:9: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. (void) vfprintf(stderr, fmt, args); data/wide-dhcpv6-20080615/missing/warnx.c:57:9: [4] (format) vfprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. (void) vfprintf(stderr, fmt, args); data/wide-dhcpv6-20080615/common.c:843:39: [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 (x + ((y - x) * (ratio - 1) / random() & (ratio - 1))); data/wide-dhcpv6-20080615/common.c:2857:18: [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. ev->retrans = (random() % (SOL_MAX_DELAY)); data/wide-dhcpv6-20080615/common.c:2867:18: [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. r = (double)((random() % 1000) + 1) / 10000; data/wide-dhcpv6-20080615/common.c:2870:18: [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. r = (double)((random() % 2000) - 1000) / 10000; data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:96:15: [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 ((ch = getopt(argc, argv, "CSa:k:p:")) != -1) { data/wide-dhcpv6-20080615/dhcp6c.c:165:2: [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(time(NULL) & getpid()); data/wide-dhcpv6-20080615/dhcp6c.c:173:15: [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 ((ch = getopt(argc, argv, "c:dDfik:p:P:")) != -1) { data/wide-dhcpv6-20080615/dhcp6c.c:1225:13: [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. ev->xid = random() & DH6_XIDMASK; data/wide-dhcpv6-20080615/dhcp6relay.c:149:14: [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((ch = getopt(argc, argv, "b:dDfH:r:s:S:p:")) != -1) { data/wide-dhcpv6-20080615/dhcp6s.c:253:2: [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(time(NULL) & getpid()); data/wide-dhcpv6-20080615/dhcp6s.c:254:15: [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 ((ch = getopt(argc, argv, "c:dDfk:n:p:P:")) != -1) { data/wide-dhcpv6-20080615/auth.c:88: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. unsigned char key[HMACMD5_KEYLENGTH]; data/wide-dhcpv6-20080615/auth.c:130: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. unsigned char digest[MD5_DIGESTLENGTH]; data/wide-dhcpv6-20080615/auth.c:149: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(buf + off, digest, MD5_DIGESTLENGTH); data/wide-dhcpv6-20080615/auth.c:163: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. unsigned char digest[MD5_DIGESTLENGTH]; data/wide-dhcpv6-20080615/auth.c:186: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(buf + off, digest, sizeof(digest)); data/wide-dhcpv6-20080615/auth.c:201: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. unsigned char ipad[PADLEN]; data/wide-dhcpv6-20080615/auth.c:211: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(ctx->key, key, len); data/wide-dhcpv6-20080615/auth.c:244: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. unsigned char opad[PADLEN]; data/wide-dhcpv6-20080615/auth.c:266: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. unsigned char newdigest[MD5_DIGESTLENGTH]; data/wide-dhcpv6-20080615/auth.c:440: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((unsigned char *)ctx->in + 64 - t, buf, len); data/wide-dhcpv6-20080615/auth.c:444: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((unsigned char *)ctx->in + 64 - t, buf, t); data/wide-dhcpv6-20080615/auth.c:452: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(ctx->in, buf, 64); data/wide-dhcpv6-20080615/auth.c:460: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(ctx->in, buf, len); data/wide-dhcpv6-20080615/auth.c:495: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(digest, ctx->buf, 16); data/wide-dhcpv6-20080615/base64.c:75: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(ctx->dst, base, length); data/wide-dhcpv6-20080615/base64.c:103: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 buf[3]; data/wide-dhcpv6-20080615/cfparse.c:2789:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; data/wide-dhcpv6-20080615/cfparse.c:2806:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char yyformat[sizeof yyunexpected data/wide-dhcpv6-20080615/cftoken.c:2489: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 ebuf[BUFSIZ], *bp, *ep; data/wide-dhcpv6-20080615/cftoken.c:2543:7: [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(path, "re"); data/wide-dhcpv6-20080615/cftoken.c:2545:7: [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(path, "r"); data/wide-dhcpv6-20080615/cftoken.c:2570:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((yyin = fopen(configfilename, "re")) == NULL) { data/wide-dhcpv6-20080615/cftoken.c:2572:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((yyin = fopen(configfilename, "r")) == NULL) { data/wide-dhcpv6-20080615/common.c:329: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(dst->dv_buf, src->dv_buf, dst->dv_len); data/wide-dhcpv6-20080615/common.c:415: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(in6, &d->val_addr6, sizeof(*in6)); data/wide-dhcpv6-20080615/common.c:437: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 name[MAXDNAME + 1]; data/wide-dhcpv6-20080615/common.c:474: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 name[MAXDNAME], *cp, *ep; data/wide-dhcpv6-20080615/common.c:513: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(cp, name, nlen); data/wide-dhcpv6-20080615/common.c:623: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(dst, authparam, sizeof(*dst)); data/wide-dhcpv6-20080615/common.c:718: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(&sin6, ifa->ifa_addr, sysdep_sa_len(ifa->ifa_addr)); data/wide-dhcpv6-20080615/common.c:732:4: [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(&a, &sin6.sin6_addr, sizeof(sin6.sin6_addr)); data/wide-dhcpv6-20080615/common.c:744: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(addr, &sin6.sin6_addr, sizeof(sin6.sin6_addr)); data/wide-dhcpv6-20080615/common.c:890:9: [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 addrbuf[8][NI_MAXHOST]; data/wide-dhcpv6-20080615/common.c:999: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 tmpbuf[256]; /* DUID should be no more than 256 bytes */ data/wide-dhcpv6-20080615/common.c:1001:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fp = fopen(idfile, "r")) == NULL && errno != ENOENT) data/wide-dhcpv6-20080615/common.c:1048: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((void *)(dp + 1), tmpbuf, (len - sizeof(*dp))); data/wide-dhcpv6-20080615/common.c:1056:13: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fp = fopen(idfile, "w+")) == NULL) { data/wide-dhcpv6-20080615/common.c:1099: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 fname[MAXPATHLEN], *cp; data/wide-dhcpv6-20080615/common.c:1119:12: [2] (misc) open: 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). if ((fd = open(fname, O_RDWR | O_CLOEXEC)) == -1) { data/wide-dhcpv6-20080615/common.c:1121:12: [2] (misc) open: 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). if ((fd = open(fname, O_RDWR)) == -1) { data/wide-dhcpv6-20080615/common.c:1136:17: [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). dlar.dl_ppa = atoi(cp); data/wide-dhcpv6-20080615/common.c:1139:13: [2] (misc) open: 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). if ((fd = open(fname, O_RDWR | O_CLOEXEC)) == -1) data/wide-dhcpv6-20080615/common.c:1141:13: [2] (misc) open: 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). if ((fd = open(fname, O_RDWR)) == -1) data/wide-dhcpv6-20080615/common.c:1211:9: [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(buf, (char *)getbuf + dlpaa->dl_addr_offset, data/wide-dhcpv6-20080615/common.c:1296: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(buf, LLADDR(sdl), sdl->sdl_alen); data/wide-dhcpv6-20080615/common.c:1309: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(buf, sll->sll_addr, sll->sll_halen); data/wide-dhcpv6-20080615/common.c:1444: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(dst->relaymsg_msg, src->relaymsg_msg, data/wide-dhcpv6-20080615/common.c:1452: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(dst->ifidopt_id, src->ifidopt_id, src->ifidopt_len); data/wide-dhcpv6-20080615/common.c:1471:4: [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(dst->delayedauth_realmval, data/wide-dhcpv6-20080615/common.c:1582: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(&opttype, val, sizeof(u_int16_t)); data/wide-dhcpv6-20080615/common.c:1635:4: [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(optinfo->relaymsg_msg, cp, optlen); data/wide-dhcpv6-20080615/common.c:1685: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(optinfo->delayedauth_realmval, cp, data/wide-dhcpv6-20080615/common.c:1723:4: [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(optinfo->ifidopt_id, cp, optlen); data/wide-dhcpv6-20080615/common.c:1919: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 tmpbuf[MAXDNAME + 1]; data/wide-dhcpv6-20080615/common.c:2182:9: [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 ret[1024]; /* XXX: thread unsafe */ data/wide-dhcpv6-20080615/common.c:2246: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(opt, &opth, sizeof(opth)); data/wide-dhcpv6-20080615/common.c:2248: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(opt + 1, val, len); data/wide-dhcpv6-20080615/common.c:2306: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(p, tmpbuf, optlen); data/wide-dhcpv6-20080615/common.c:2460: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(p, tmpbuf, optlen); data/wide-dhcpv6-20080615/common.c:2538: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(authinfo, optinfo->delayedauth_realmval, data/wide-dhcpv6-20080615/common.c:2544: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(authinfo, &p32, sizeof(p32)); data/wide-dhcpv6-20080615/common.c:2768: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(&pd_prefix.dh6_iapd_prefix_prefix_addr, data/wide-dhcpv6-20080615/common.c:2790: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(p, opt, headlen); data/wide-dhcpv6-20080615/common.c:2903: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(dd->duid_id, ds->duid_id, dd->duid_len); data/wide-dhcpv6-20080615/common.c:2983: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(rdvalue, &u32, sizeof(u32)); data/wide-dhcpv6-20080615/common.c:2984: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((char *)rdvalue + sizeof(u32), &l32, sizeof(l32)); data/wide-dhcpv6-20080615/common.c:2993:9: [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 genstr[sizeof("opt_65535") + 1]; /* XXX thread unsafe */ data/wide-dhcpv6-20080615/common.c:3083:9: [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 genstr[sizeof("msg255") + 1]; /* XXX thread unsafe */ data/wide-dhcpv6-20080615/common.c:3125:9: [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 genstr[sizeof("code255") + 1]; /* XXX thread unsafe */ data/wide-dhcpv6-20080615/common.c:3157:9: [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 duidstr[sizeof("xx:") * 128 + sizeof("...")]; data/wide-dhcpv6-20080615/common.c:3231: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 logbuf[LINE_MAX]; data/wide-dhcpv6-20080615/common.c:3342: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(&req.ifr6_addr, &addr->sin6_addr, sizeof(struct in6_addr)); data/wide-dhcpv6-20080615/common.c:3358: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(&req.lifr_addr, addr, sizeof (*addr)); data/wide-dhcpv6-20080615/config.c:393:26: [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). iac->iaid = (u_int32_t)atoi(iap->name); data/wide-dhcpv6-20080615/config.c:720: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 secret[1024]; data/wide-dhcpv6-20080615/config.c:818: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(kinfo->secret, secret, secretlen); data/wide-dhcpv6-20080615/config.c:1977: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(dup, qstr + 1, len - 1); data/wide-dhcpv6-20080615/config.h:175: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 ifid[16]; /* Interface ID, up to 128bits */ data/wide-dhcpv6-20080615/dhcp6.h:232:4: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char val[16]; /* key value */ data/wide-dhcpv6-20080615/dhcp6_ctl.c:74: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 inputbuf[1024]; /* input buffer */ data/wide-dhcpv6-20080615/dhcp6_ctl.c:158: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 line[1024], secret[1024]; data/wide-dhcpv6-20080615/dhcp6_ctl.c:164:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fp = fopen(keyfile, "r")) == NULL) { data/wide-dhcpv6-20080615/dhcp6_ctl.c:199: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(ctlkey->secret, secret, secretlen); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:214: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 line[1024], secret[1024]; data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:222:12: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((fp = fopen(keyfile, "r")) == NULL) { data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:240: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(key->secret, secret, secretlen); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:267: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(bp, &val, sizeof(val)); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:290: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(bp, &val, sizeof(val)); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:313: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(bp, val, valsize); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:332: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 commandbuf[4096]; /* XXX: ad-hoc value */ data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:394: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(commandbuf, &ctl, sizeof(ctl)); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:408: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(buf, commandbuf, len); data/wide-dhcpv6-20080615/dhcp6c.c:243:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((pidfp = fopen(pid_file, "w")) != NULL) { data/wide-dhcpv6-20080615/dhcp6c.c:374: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(&sa6_allagent_storage, res->ai_addr, res->ai_addrlen); data/wide-dhcpv6-20080615/dhcp6c.c:617: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(ifbuf, *bpp, ifnamelen); data/wide-dhcpv6-20080615/dhcp6c.c:637: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 ifname[IFNAMSIZ]; data/wide-dhcpv6-20080615/dhcp6c.c:1177: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[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6c.c:1417: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 rbuf[BUFSIZ], cmsgbuf[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6c.c:2190: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(optinfo->delayedauth_realmval, authparam->key->realm, data/wide-dhcpv6-20080615/dhcp6c.c:2207: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 logbuf[LINE_MAX]; data/wide-dhcpv6-20080615/dhcp6c_script.c:403: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 *argv[2]; data/wide-dhcpv6-20080615/dhcp6c_script.c:416:32: [2] (misc) open: 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). if (foreground == 0 && (fd = open("/dev/null", O_RDWR)) != -1) { data/wide-dhcpv6-20080615/dhcp6relay.c:83: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 rdatabuf[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6relay.c:224:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((pidfp = fopen(pid_file, "w")) != NULL) { data/wide-dhcpv6-20080615/dhcp6relay.c:244: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 pstr[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6relay.c:605: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 ifname[IF_NAMESIZE]; data/wide-dhcpv6-20080615/dhcp6relay.c:750: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(CMSG_DATA((struct cmsghdr *)cm), pktinfo, data/wide-dhcpv6-20080615/dhcp6relay.c:786: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 ctlbuf[CMSG_SPACE(sizeof (struct in6_pktinfo)) data/wide-dhcpv6-20080615/dhcp6relay.c:802: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(optinfo.relaymsg_msg, dh6, len); data/wide-dhcpv6-20080615/dhcp6relay.c:811: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(optinfo.ifidopt_id, &ifid, sizeof (ifid)); data/wide-dhcpv6-20080615/dhcp6relay.c:934: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 ifnamebuf[IFNAMSIZ]; data/wide-dhcpv6-20080615/dhcp6relay.c:941: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 ctlbuf[CMSG_SPACE(sizeof (struct in6_pktinfo))]; data/wide-dhcpv6-20080615/dhcp6relay_script.c:64: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 buf[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6relay_script.c:187: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 *argv[2]; data/wide-dhcpv6-20080615/dhcp6relay_script.c:201:13: [2] (misc) open: 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). (fd = open("/dev/null", O_RDWR)) != -1) { data/wide-dhcpv6-20080615/dhcp6s.c:141: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 rdatabuf[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6s.c:330:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if ((pidfp = fopen(pid_file, "w")) != NULL) { data/wide-dhcpv6-20080615/dhcp6s.c:555: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(&sa6_any_downstream_storage, res->ai_addr, res->ai_addrlen); data/wide-dhcpv6-20080615/dhcp6s.c:570: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(&sa6_any_relay_storage, res->ai_addr, res->ai_addrlen); data/wide-dhcpv6-20080615/dhcp6s.c:688: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(valp, bp, vallen); data/wide-dhcpv6-20080615/dhcp6s.c:863: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 cmsgbuf[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6s.c:2712: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 replybuf[BUFSIZ]; data/wide-dhcpv6-20080615/dhcp6s.c:3457:9: [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 strbuf[LINE_MAX]; /* XXX: thread unsafe */ data/wide-dhcpv6-20080615/dhcp6s.c:3643: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(roptinfo->delayedauth_realmval, key->realm, data/wide-dhcpv6-20080615/lease.c:275: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(entry->val, val, size); data/wide-dhcpv6-20080615/missing/arc4random.c:51:7: [2] (misc) open: 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). fd = open("/dev/urandom", O_RDONLY, 0600); data/wide-dhcpv6-20080615/missing/daemon.c:42:10: [2] (misc) open: 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). (void) open("/dev/null", O_RDWR); data/wide-dhcpv6-20080615/missing/getifaddrs.c:107:9: [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(buf, addr, len); data/wide-dhcpv6-20080615/cfparse.c:1050: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/wide-dhcpv6-20080615/cftoken.c:926:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ data/wide-dhcpv6-20080615/common.c:450: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). vb.dv_len = strlen(name) + 1; data/wide-dhcpv6-20080615/common.c:973:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ifr6.ifr_name, ifnam, sizeof(ifr6.ifr_name)); data/wide-dhcpv6-20080615/common.c:1111:34: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (ppa >= 0 && !isdigit(ifname[strlen(ifname) - 1])) data/wide-dhcpv6-20080615/common.c:1125:16: [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). cp = fname + strlen(fname) - 1; data/wide-dhcpv6-20080615/common.c:2594:16: [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 namelen = strlen(name); data/wide-dhcpv6-20080615/common.c:3335:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ifr.ifr_name, ifname, IFNAMSIZ - 1); data/wide-dhcpv6-20080615/common.c:3347:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(req.lifr_name, ifname, sizeof (req.lifr_name)); data/wide-dhcpv6-20080615/config.c:300: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). cp += strlen(conf->scriptpath) - 1; data/wide-dhcpv6-20080615/config.c:763: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). kinfo->realmlen = strlen(kinfo->realm); data/wide-dhcpv6-20080615/config.c:1155: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). cp = name + strlen(name) - 1; data/wide-dhcpv6-20080615/config.c:1159: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). name_vbuf.dv_len = strlen(name) + 1; data/wide-dhcpv6-20080615/config.c:1197: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). slen = strlen(str); data/wide-dhcpv6-20080615/config.c:1970: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(qstr); data/wide-dhcpv6-20080615/dhcp6_ctl.c:313:9: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). cc = read(ctx->s, cp, resid); data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:539: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). iflen = strlen(argv[0]) + 1; data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:542:33: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (putval(bpp, lenp, argv[0], strlen(argv[0]) + 1)) data/wide-dhcpv6-20080615/dhcp6_ctlclient.c:650: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). slen = strlen(str); data/wide-dhcpv6-20080615/dhcp6c.c:1968:33: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (ifp->scriptpath != NULL && strlen(ifp->scriptpath) != 0) { data/wide-dhcpv6-20080615/dhcp6c_script.c:92:28: [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 (scriptpath == NULL || strlen(scriptpath) == 0) data/wide-dhcpv6-20080615/dhcp6relay_script.c:84:28: [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 (scriptpath == NULL || strlen(scriptpath) == 0) data/wide-dhcpv6-20080615/dhcp6relay_script.c:140:35: [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). elen = sizeof (client_str) + 1 + strlen(t) + 1; data/wide-dhcpv6-20080615/dhcp6relay_script.c:243: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:243: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:251: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:251: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:284: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:284: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:291: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/dhcp6relay_script.c:291: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). snprintf(s + strlen(s), BUFSIZ - strlen(s), data/wide-dhcpv6-20080615/missing/arc4random.c:66:6: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). n = read(fd, &v, sizeof(v)); data/wide-dhcpv6-20080615/missing/getifaddrs.c:90: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). slen = strlen(lifrp->lifr_name) + 1; data/wide-dhcpv6-20080615/missing/getifaddrs.c:122: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). slen = strlen(lifrp->lifr_name) + 1; data/wide-dhcpv6-20080615/missing/strlcat.c:64: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). return(dlen + strlen(s)); ANALYSIS SUMMARY: Hits = 181 Lines analyzed = 25778 in approximately 0.67 seconds (38727 lines/second) Physical Source Lines of Code (SLOC) = 19363 Hits@level = [0] 55 [1] 35 [2] 128 [3] 11 [4] 7 [5] 0 Hits@level+ = [0+] 236 [1+] 181 [2+] 146 [3+] 18 [4+] 7 [5+] 0 Hits/KSLOC@level+ = [0+] 12.1882 [1+] 9.34773 [2+] 7.54015 [3+] 0.929608 [4+] 0.361514 [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.