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/sipsak-0.9.7/src/auth.c Examining data/sipsak-0.9.7/src/auth.h Examining data/sipsak-0.9.7/src/exit_code.c Examining data/sipsak-0.9.7/src/exit_code.h Examining data/sipsak-0.9.7/src/header_f.c Examining data/sipsak-0.9.7/src/header_f.h Examining data/sipsak-0.9.7/src/helper.c Examining data/sipsak-0.9.7/src/helper.h Examining data/sipsak-0.9.7/src/md5.c Examining data/sipsak-0.9.7/src/md5.h Examining data/sipsak-0.9.7/src/md5global.h Examining data/sipsak-0.9.7/src/request.c Examining data/sipsak-0.9.7/src/request.h Examining data/sipsak-0.9.7/src/shoot.c Examining data/sipsak-0.9.7/src/shoot.h Examining data/sipsak-0.9.7/src/sipsak.c Examining data/sipsak-0.9.7/src/sipsak.h Examining data/sipsak-0.9.7/src/transport.c Examining data/sipsak-0.9.7/src/transport.h Examining data/sipsak-0.9.7/tests/check_helper.c Examining data/sipsak-0.9.7/tests/check_md5.c FINAL RESULTS: data/sipsak-0.9.7/src/auth.c:165:4: [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(insert, PROXYAUZ_STR_LEN+1, PROXYAUZ_STR); data/sipsak-0.9.7/src/auth.c:169:4: [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(insert, AUTH_STR_LEN+1, AUTH_STR); data/sipsak-0.9.7/src/auth.c:176:3: [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(insert, ALGO_STR_LEN+1, ALGO_STR); data/sipsak-0.9.7/src/auth.c:179:4: [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(insert, MD5_STR_LEN+1, MD5_STR); data/sipsak-0.9.7/src/auth.c:184:4: [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(insert, SHA1_STR_LEN+1, SHA1_STR); data/sipsak-0.9.7/src/auth.c:188:4: [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(insert, SHA256_STR_LEN+1, SHA256_STR); data/sipsak-0.9.7/src/auth.c:378:3: [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(insert, RESPONSE_STR_LEN+1, RESPONSE_STR); data/sipsak-0.9.7/src/header_f.c:119:2: [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(backup, middle_via); data/sipsak-0.9.7/src/header_f.c:121:2: [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(middle_via+(last_via-first_via+1), backup); data/sipsak-0.9.7/src/header_f.c:152:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(backup, tmp); data/sipsak-0.9.7/src/header_f.c:155:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(dst_to+(tmp-src_to+1), backup); data/sipsak-0.9.7/src/helper.c:207:4: [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(ca_tmpname, name); data/sipsak-0.9.7/src/helper.c:341:2: [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(srvh + strlen(srv) + 1, host); data/sipsak-0.9.7/src/helper.c:603:4: [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(backup, insert+strlen(search)); data/sipsak-0.9.7/src/helper.c:604:4: [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(insert, replacement); data/sipsak-0.9.7/src/helper.c:605:4: [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(insert+strlen(replacement), backup); data/sipsak-0.9.7/src/helper.c:648:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(repl, "$%s$", atr); data/sipsak-0.9.7/src/helper.c:667:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(backup, lf+1); data/sipsak-0.9.7/src/helper.c:669:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(lf+2, backup); data/sipsak-0.9.7/src/helper.c:688:2: [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(tmp, fst); data/sipsak-0.9.7/src/helper.c:689:2: [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(fst, snd); data/sipsak-0.9.7/src/helper.c:690:2: [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(snd, tmp); data/sipsak-0.9.7/src/helper.c:865:2: [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. vfprintf(stderr, format, ap); data/sipsak-0.9.7/src/request.c:47:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:66:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%i\r\n" data/sipsak-0.9.7/src/request.c:72:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%i\r\n" data/sipsak-0.9.7/src/request.c:78:6: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%s\r\n\r\n", TRANSPORT_PARAMETER_STR, data/sipsak-0.9.7/src/request.c:89:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:115:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%s\r\n\r\n", TRANSPORT_PARAMETER_STR, data/sipsak-0.9.7/src/request.c:121:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:142:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:148:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:154:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(repl_buff, data/sipsak-0.9.7/src/request.c:174:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:191:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:196:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:207:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%u\r\n", CON_LEN_STR, len); data/sipsak-0.9.7/src/request.c:210:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%s\r\n", CON_DIS_STR, con_dis); data/sipsak-0.9.7/src/request.c:216:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:221:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, "%s%s", SIPSAK_MES_STR, username); data/sipsak-0.9.7/src/request.c:226:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(repl_buff, data/sipsak-0.9.7/src/request.c:244:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:269:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/request.c:293:4: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(req_buff, data/sipsak-0.9.7/src/shoot.c:89:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(target, "%s%i@", username, number); data/sipsak-0.9.7/src/shoot.c:92:3: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(target, "%s@", username); data/sipsak-0.9.7/src/shoot.c:440:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(ruri, "%s sip:%s", INV_STR, usern); data/sipsak-0.9.7/src/shoot.c:502:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(ruri, "%s sip:sipsak_conf@", ACK_STR); data/sipsak-0.9.7/src/shoot.c:585:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(ruri, "%s sip:%s", MES_STR, usern); data/sipsak-0.9.7/src/sipsak.c:123:2: [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(" --local-port=PORT the local port to use (default: any)\n" data/sipsak-0.9.7/src/sipsak.c:865:3: [4] (buffer) strcpy: Does not check for buffer overflows when copying to destination [MS-banned] (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused). strcpy(backup, headers); data/sipsak-0.9.7/src/sipsak.c:364:12: [3] (buffer) getopt_long: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((c=getopt_long(argc, argv, "a:A:b:B:c:C:dD:e:E:f:Fg:GhH:iIj:J:k:K:l:Lm:MnNo:O:p:P:q:r:Rs:St:Tu:UvVwW:x:z:Z:", l_opts, &option_index)) != EOF){ data/sipsak-0.9.7/src/sipsak.c:366:12: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while ((c=getopt(argc, argv, "a:A:b:B:c:C:dD:e:E:f:Fg:GhH:iIj:J:k:K:l:Lm:MnNo:O:p:P:q:r:Rs:St:Tu:UvVwW:x:z:Z:")) != EOF){ data/sipsak-0.9.7/src/sipsak.c:1056:2: [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(time(0) ^ (getpid() + (getpid() << 15))); data/sipsak-0.9.7/src/auth.c:61: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 ha1[SIPSAK_HASHLEN], ha2[SIPSAK_HASHLEN], resp[SIPSAK_HASHLEN]; data/sipsak-0.9.7/src/auth.c:62: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 ha1_hex[SIPSAK_HASHHEXLEN+1], ha2_hex[SIPSAK_HASHHEXLEN+1], resp_hex[SIPSAK_HASHHEXLEN+1]; data/sipsak-0.9.7/src/header_f.c:369: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(dest, invite, len); data/sipsak-0.9.7/src/header_f.c:579: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(tmp,contact,strlen(contact)); data/sipsak-0.9.7/src/helper.c:229: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(&addr, aptr, sizeof(struct in_addr)); data/sipsak-0.9.7/src/helper.c:340: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(srvh + strlen(srv), ".", 1); data/sipsak-0.9.7/src/helper.c:514: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 hname[100], dname[100], hlp[18]; data/sipsak-0.9.7/src/helper.c:677: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(lf, "\r\n"); data/sipsak-0.9.7/src/helper.c:761: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(backup, num, len + 1); data/sipsak-0.9.7/src/helper.c:796:8: [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). ret = atoi(start); data/sipsak-0.9.7/src/md5.c:72: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/sipsak-0.9.7/src/md5.c:175: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/sipsak-0.9.7/src/md5.c:178: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/sipsak-0.9.7/src/md5.c:205: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/sipsak-0.9.7/src/md5.c:341: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( output, input, len ); data/sipsak-0.9.7/src/md5.c:356: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 *)output)[i] = (char)value; data/sipsak-0.9.7/src/md5.h:54: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/sipsak-0.9.7/src/request.c:81:6: [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(req_buff, "\r\n\r\n"); data/sipsak-0.9.7/src/request.c:84:5: [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(req_buff, "\r\n"); data/sipsak-0.9.7/src/request.c:112:5: [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(req_buff, "\r\n\r\n"); data/sipsak-0.9.7/src/request.c:213:4: [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(req_buff, "\r\n"); data/sipsak-0.9.7/src/shoot.c:339: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 ruri[11+12+20]; //FIXME: username length 20 should be dynamic data/sipsak-0.9.7/src/shoot.c:807: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 buf2[BUFSIZE], buf3[BUFSIZE], lport_str[LPORT_STR_LEN]; data/sipsak-0.9.7/src/shoot.c:863: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(lport_str, "%i", lport); data/sipsak-0.9.7/src/shoot.c:1083: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(&(timers.firstsendt), &(timers.sendtime), sizeof(struct timeval)); data/sipsak-0.9.7/src/sipsak.c:253: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 buff[BUFSIZE]; data/sipsak-0.9.7/src/sipsak.c:381:11: [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). pf = fopen(optarg, "rb"); data/sipsak-0.9.7/src/sipsak.c:395:11: [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). pf = fopen(optarg, "rb"); data/sipsak-0.9.7/src/sipsak.c:460: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(contact_uri, "*", 1); data/sipsak-0.9.7/src/sipsak.c:526:11: [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). pf = fopen(optarg, "rb"); data/sipsak-0.9.7/src/sipsak.c:870:4: [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(backup + 1, "\r\n"); data/sipsak-0.9.7/src/sipsak.h:335:1: [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 fqdn[FQDN_SIZE]; data/sipsak-0.9.7/src/sipsak.h:336:1: [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 target_dot[INET_ADDRSTRLEN], source_dot[INET_ADDRSTRLEN]; data/sipsak-0.9.7/src/transport.c:136: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[64]; data/sipsak-0.9.7/src/transport.c:192: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[64]; data/sipsak-0.9.7/src/transport.c:356: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 printable[110]; data/sipsak-0.9.7/src/transport.c:367: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(print, "%.2x ", _bin[i]); data/sipsak-0.9.7/src/transport.c:375: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 serial[40]; data/sipsak-0.9.7/src/transport.c:376: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 dn[128]; data/sipsak-0.9.7/src/transport.c:788: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(&(srt->firstsendt), &(srt->sendtime), sizeof(struct timeval)); data/sipsak-0.9.7/src/transport.c:791: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(&(srt->starttime), &(srt->sendtime), sizeof(struct timeval)); data/sipsak-0.9.7/src/transport.c:862: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(&(srt->delaytime), &(srt->sendtime), sizeof(struct timeval)); data/sipsak-0.9.7/tests/check_helper.c:114: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 ta[15]; data/sipsak-0.9.7/tests/check_helper.c:121: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(ta, "test", 4); data/sipsak-0.9.7/tests/check_helper.c:126: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(ta, "test\n", 5); data/sipsak-0.9.7/tests/check_helper.c:131: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(ta, "foo\nbar\n", 8); data/sipsak-0.9.7/tests/check_md5.c:12:1: [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 md5hex_buf[33]; /* NULed by initialization */ data/sipsak-0.9.7/tests/check_md5.c:13: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. const char *md5hex(char res[16]) { data/sipsak-0.9.7/tests/check_md5.c:13: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. const char *md5hex(char res[16]) { data/sipsak-0.9.7/tests/check_md5.c:16: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(md5hex_buf + 2 * i, "%02hhx", res[i]); data/sipsak-0.9.7/tests/check_md5.c:23: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 res[16]; data/sipsak-0.9.7/tests/check_md5.c:37: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 res[16]; data/sipsak-0.9.7/src/auth.c:95:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(insert)+1); data/sipsak-0.9.7/src/auth.c:96:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, insert, strlen(insert)); data/sipsak-0.9.7/src/auth.c:96: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). strncpy(backup, insert, strlen(insert)); data/sipsak-0.9.7/src/auth.c:108:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(auth, begin, (size_t)(end-begin)); data/sipsak-0.9.7/src/auth.c:146:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). usern=str_alloc(strlen(username)+11); data/sipsak-0.9.7/src/auth.c:148: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). snprintf(usern, strlen(username)+10, "%s%i", username, namebeg); data/sipsak-0.9.7/src/auth.c:150: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). snprintf(usern, strlen(username)+10, "%s", username); data/sipsak-0.9.7/src/auth.c:155:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(method, message, (size_t)(end-message)); data/sipsak-0.9.7/src/auth.c:161:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(uri, begin, (size_t)(end-begin)); data/sipsak-0.9.7/src/auth.c:172:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). snprintf(insert, strlen(usern)+14, "username=\"%s\", ", usern); data/sipsak-0.9.7/src/auth.c:173: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). insert+=strlen(insert); data/sipsak-0.9.7/src/auth.c:174:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). snprintf(insert, strlen(uri)+9, "uri=\"%s\", ", uri); data/sipsak-0.9.7/src/auth.c:175: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). insert+=strlen(insert); data/sipsak-0.9.7/src/auth.c:197:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(insert, begin, (size_t)(end-begin+1)); data/sipsak-0.9.7/src/auth.c:206:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(realm, begin, (size_t)(end-begin)); data/sipsak-0.9.7/src/auth.c:218:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(insert, begin, (size_t)(end-begin+1)); data/sipsak-0.9.7/src/auth.c:239:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(insert, begin, (size_t)(end-begin+1)); data/sipsak-0.9.7/src/auth.c:248:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(nonce, begin, (size_t)(end-begin)); data/sipsak-0.9.7/src/auth.c:258:12: [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). insert+=strlen(insert); data/sipsak-0.9.7/src/auth.c:261:12: [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). insert+=strlen(insert); data/sipsak-0.9.7/src/auth.c:264:12: [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). insert+=strlen(insert); data/sipsak-0.9.7/src/auth.c:275:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy((char*)&ha1_hex[0], authhash, SIPSAK_HASHHEXLEN_MD5); data/sipsak-0.9.7/src/auth.c:279:45: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). MD5Update(&Md5Ctx, usern, (unsigned int)strlen(usern)); data/sipsak-0.9.7/src/auth.c:281:45: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). MD5Update(&Md5Ctx, realm, (unsigned int)strlen(realm)); data/sipsak-0.9.7/src/auth.c:283:48: [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). MD5Update(&Md5Ctx, password, (unsigned int)strlen(password)); data/sipsak-0.9.7/src/auth.c:289:45: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). MD5Update(&Md5Ctx, method, (unsigned int)strlen(method)); data/sipsak-0.9.7/src/auth.c:291:42: [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). MD5Update(&Md5Ctx, uri, (unsigned int)strlen(uri)); data/sipsak-0.9.7/src/auth.c:298:44: [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). MD5Update(&Md5Ctx, nonce, (unsigned int)strlen(nonce)); data/sipsak-0.9.7/src/auth.c:301:47: [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). MD5Update(&Md5Ctx, qop_tmp, (unsigned int)strlen(qop_tmp)); data/sipsak-0.9.7/src/auth.c:310:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy((char*)&ha1_hex[0], authhash, SIPSAK_HASHHEXLEN_SHA1); data/sipsak-0.9.7/src/auth.c:314:48: [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). SHA1_Update(&Sha1Ctx, usern, (unsigned int)strlen(usern)); data/sipsak-0.9.7/src/auth.c:316:48: [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). SHA1_Update(&Sha1Ctx, realm, (unsigned int)strlen(realm)); data/sipsak-0.9.7/src/auth.c:318:51: [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). SHA1_Update(&Sha1Ctx, password, (unsigned int)strlen(password)); data/sipsak-0.9.7/src/auth.c:324:48: [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). SHA1_Update(&Sha1Ctx, method, (unsigned int)strlen(method)); data/sipsak-0.9.7/src/auth.c:326:45: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). SHA1_Update(&Sha1Ctx, uri, (unsigned int)strlen(uri)); data/sipsak-0.9.7/src/auth.c:333:47: [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). SHA1_Update(&Sha1Ctx, nonce, (unsigned int)strlen(nonce)); data/sipsak-0.9.7/src/auth.c:336:50: [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). SHA1_Update(&Sha1Ctx, qop_tmp, (unsigned int)strlen(qop_tmp)); data/sipsak-0.9.7/src/auth.c:344:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy((char*)&ha1_hex[0], authhash, SIPSAK_HASHHEXLEN_SHA256); data/sipsak-0.9.7/src/auth.c:348:52: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). SHA256_Update(&Sha256Ctx, usern, (unsigned int)strlen(usern)); data/sipsak-0.9.7/src/auth.c:350:52: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). SHA256_Update(&Sha256Ctx, realm, (unsigned int)strlen(realm)); data/sipsak-0.9.7/src/auth.c:352:55: [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). SHA256_Update(&Sha256Ctx, password, (unsigned int)strlen(password)); data/sipsak-0.9.7/src/auth.c:358:52: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). SHA256_Update(&Sha256Ctx, method, (unsigned int)strlen(method)); data/sipsak-0.9.7/src/auth.c:360:49: [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). SHA256_Update(&Sha256Ctx, uri, (unsigned int)strlen(uri)); data/sipsak-0.9.7/src/auth.c:367:51: [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). SHA256_Update(&Sha256Ctx, nonce, (unsigned int)strlen(nonce)); data/sipsak-0.9.7/src/auth.c:370:54: [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). SHA256_Update(&Sha256Ctx, qop_tmp, (unsigned int)strlen(qop_tmp)); data/sipsak-0.9.7/src/auth.c:381: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). insert+=strlen(insert); data/sipsak-0.9.7/src/auth.c:383:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(insert, backup, strlen(backup)); data/sipsak-0.9.7/src/auth.c:383:27: [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). strncpy(insert, backup, strlen(backup)); data/sipsak-0.9.7/src/header_f.c:41: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). backup = str_alloc(strlen(ins) + 1); data/sipsak-0.9.7/src/header_f.c:42:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, ins, strlen(ins)); data/sipsak-0.9.7/src/header_f.c:42: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). strncpy(backup, ins, strlen(ins)); data/sipsak-0.9.7/src/header_f.c:43:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ins, header, strlen(header)); data/sipsak-0.9.7/src/header_f.c:43: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). strncpy(ins, header, strlen(header)); data/sipsak-0.9.7/src/header_f.c:44:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ins + strlen(header), backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:44: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). strncpy(ins + strlen(header), backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:44:40: [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). strncpy(ins + strlen(header), backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:69:4: [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(fqdn)+15+30+1); data/sipsak-0.9.7/src/header_f.c:71:42: [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). VIA_SIP_STR_LEN+TRANSPORT_STR_LEN+1+strlen(fqdn)+15+30, data/sipsak-0.9.7/src/header_f.c:77:6: [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(mes)+strlen(via_line)>= BUFSIZE){ data/sipsak-0.9.7/src/header_f.c:77:18: [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(mes)+strlen(via_line)>= BUFSIZE){ data/sipsak-0.9.7/src/header_f.c:82:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc((strlen(via)+1)); data/sipsak-0.9.7/src/header_f.c:83:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, via, strlen(via)); data/sipsak-0.9.7/src/header_f.c:83: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). strncpy(backup, via, strlen(via)); data/sipsak-0.9.7/src/header_f.c:84:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(via, via_line, strlen(via_line)); data/sipsak-0.9.7/src/header_f.c:84:25: [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). strncpy(via, via_line, strlen(via_line)); data/sipsak-0.9.7/src/header_f.c:85:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(via+strlen(via_line), backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:85:14: [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). strncpy(via+strlen(via_line), backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:85:40: [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). strncpy(via+strlen(via_line), backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:118:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(middle_via)+1); data/sipsak-0.9.7/src/header_f.c:120:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(middle_via, first_via, (size_t)(last_via-first_via+1)); data/sipsak-0.9.7/src/header_f.c:151:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(tmp)+1); data/sipsak-0.9.7/src/header_f.c:154:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(dst_to, src_to, (size_t)(tmp-src_to+1)); data/sipsak-0.9.7/src/header_f.c:176:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(max)+1); data/sipsak-0.9.7/src/header_f.c:177:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, max, (size_t)(strlen(max))); data/sipsak-0.9.7/src/header_f.c:177: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). strncpy(backup, max, (size_t)(strlen(max))); data/sipsak-0.9.7/src/header_f.c:187:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(max, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:187:24: [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). strncpy(max, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:198:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(crlfi)+1); data/sipsak-0.9.7/src/header_f.c:199:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, crlfi, strlen(crlfi)); data/sipsak-0.9.7/src/header_f.c:199: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). strncpy(backup, crlfi, strlen(crlfi)); data/sipsak-0.9.7/src/header_f.c:211:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(crlfi, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:211: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). strncpy(crlfi, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:231:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(foo)+1); data/sipsak-0.9.7/src/header_f.c:232:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, foo, strlen(foo)); data/sipsak-0.9.7/src/header_f.c:232: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). strncpy(backup, foo, strlen(foo)); data/sipsak-0.9.7/src/header_f.c:234:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(foo, uri, strlen(uri)); data/sipsak-0.9.7/src/header_f.c:234:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncpy(foo, uri, strlen(uri)); data/sipsak-0.9.7/src/header_f.c:235:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(foo+strlen(uri), SIP20_STR, SIP20_STR_LEN); data/sipsak-0.9.7/src/header_f.c:235:14: [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). strncpy(foo+strlen(uri), SIP20_STR, SIP20_STR_LEN); data/sipsak-0.9.7/src/header_f.c:236:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(foo+strlen(uri)+SIP20_STR_LEN, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:236:14: [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). strncpy(foo+strlen(uri)+SIP20_STR_LEN, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:236:49: [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). strncpy(foo+strlen(uri)+SIP20_STR_LEN, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:256:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(cr)+1); data/sipsak-0.9.7/src/header_f.c:257:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, cr, strlen(cr)); data/sipsak-0.9.7/src/header_f.c:257: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). strncpy(backup, cr, strlen(cr)); data/sipsak-0.9.7/src/header_f.c:265:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cr, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:265: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). strncpy(cr, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:326:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(cr)+1); data/sipsak-0.9.7/src/header_f.c:327:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, cr, strlen(cr)); data/sipsak-0.9.7/src/header_f.c:327: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). strncpy(backup, cr, strlen(cr)); data/sipsak-0.9.7/src/header_f.c:334:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cr, RR_STR, RR_STR_LEN); data/sipsak-0.9.7/src/header_f.c:337:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cr, ROUTE_STR, ROUTE_STR_LEN); data/sipsak-0.9.7/src/header_f.c:345:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cr, rr + RR_STR_LEN, (cr2 - (rr + len) + 1)); data/sipsak-0.9.7/src/header_f.c:349:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cr, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:349: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). strncpy(cr, backup, strlen(backup)+1); data/sipsak-0.9.7/src/header_f.c:367: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). len = strlen(invite); data/sipsak-0.9.7/src/header_f.c:407:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). server=strncpy(server, warning, (size_t)(srvsize - 1)); data/sipsak-0.9.7/src/header_f.c:454:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(eol)+1); data/sipsak-0.9.7/src/header_f.c:455:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, eol, (size_t)(strlen(eol))); data/sipsak-0.9.7/src/header_f.c:455: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). strncpy(backup, eol, (size_t)(strlen(eol))); data/sipsak-0.9.7/src/header_f.c:457: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). cs_s+=strlen(cs_s); data/sipsak-0.9.7/src/header_f.c:458:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cs_s, backup, strlen(backup)); data/sipsak-0.9.7/src/header_f.c:458:25: [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). strncpy(cs_s, backup, strlen(backup)); data/sipsak-0.9.7/src/header_f.c:470: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). backup=str_alloc(strlen(eol)+1); data/sipsak-0.9.7/src/header_f.c:471:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, eol, (size_t)(strlen(eol))); data/sipsak-0.9.7/src/header_f.c:471: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). strncpy(backup, eol, (size_t)(strlen(eol))); data/sipsak-0.9.7/src/header_f.c:473: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). cs_s+=strlen(cs_s); data/sipsak-0.9.7/src/header_f.c:474:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(cs_s, backup, strlen(backup)); data/sipsak-0.9.7/src/header_f.c:474: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). strncpy(cs_s, backup, strlen(backup)); data/sipsak-0.9.7/src/header_f.c:560:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). end = contact + strlen(contact); data/sipsak-0.9.7/src/header_f.c:578:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). tmp = str_alloc(strlen(contact)+1); data/sipsak-0.9.7/src/header_f.c:579: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). memcpy(tmp,contact,strlen(contact)); data/sipsak-0.9.7/src/helper.c:112:6: [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(host) == 0) { data/sipsak-0.9.7/src/helper.c:201:36: [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). (STRNCASECMP(ca_tmpname, name, strlen(ca_tmpname)) == 0)) { data/sipsak-0.9.7/src/helper.c:202:24: [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). ca_tmpname = malloc(strlen(name) + 1); data/sipsak-0.9.7/src/helper.c:228:50: [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 (dlen == 4 && STRNCASECMP(ca_tmpname, name, strlen(ca_tmpname)) == 0) { data/sipsak-0.9.7/src/helper.c:332:13: [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). srvh_len = strlen(host) + strlen(srv) + 2; data/sipsak-0.9.7/src/helper.c:332: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). srvh_len = strlen(host) + strlen(srv) + 2; data/sipsak-0.9.7/src/helper.c:339:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(srvh, srv, strlen(srv)); data/sipsak-0.9.7/src/helper.c:339: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). strncpy(srvh, srv, strlen(srv)); data/sipsak-0.9.7/src/helper.c:340: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). memcpy(srvh + strlen(srv), ".", 1); data/sipsak-0.9.7/src/helper.c:341: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). strcpy(srvh + strlen(srv) + 1, host); data/sipsak-0.9.7/src/helper.c:524:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fqdn, hostname, FQDN_SIZE-1); data/sipsak-0.9.7/src/helper.c:525:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(hname, hostname, sizeof(hname)-1); data/sipsak-0.9.7/src/helper.c:529:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(hname, un.nodename, sizeof(hname)-1); data/sipsak-0.9.7/src/helper.c:548:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fqdn, hname, FQDN_SIZE-1); data/sipsak-0.9.7/src/helper.c:558:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fqdn, hlp, FQDN_SIZE-1); data/sipsak-0.9.7/src/helper.c:562:6: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fqdn, he->h_name, FQDN_SIZE-1); data/sipsak-0.9.7/src/helper.c:565:6: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fqdn, hname, FQDN_SIZE-1); data/sipsak-0.9.7/src/helper.c:577:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(fqdn, hostname, FQDN_SIZE-1); data/sipsak-0.9.7/src/helper.c:602: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). backup=str_alloc(strlen(insert)+1); data/sipsak-0.9.7/src/helper.c:603: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). strcpy(backup, insert+strlen(search)); data/sipsak-0.9.7/src/helper.c:605:18: [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). strcpy(insert+strlen(replacement), backup); data/sipsak-0.9.7/src/helper.c:621:24: [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). (isalnum(*(strings + strlen(strings) - 1)) != 0)) { data/sipsak-0.9.7/src/helper.c:627:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). end = strings + strlen(strings); data/sipsak-0.9.7/src/helper.c:643: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). repl = str_alloc(strlen(val) + 3); data/sipsak-0.9.7/src/helper.c:666:20: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). backup=str_alloc(strlen(lf)+2); data/sipsak-0.9.7/src/helper.c:676:14: [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). lf = mes + strlen(mes); data/sipsak-0.9.7/src/helper.c:687:18: [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). tmp = str_alloc(strlen(fst)+1); data/sipsak-0.9.7/src/helper.c:709: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). r=(int)(t * (float)strlen(message)); data/sipsak-0.9.7/src/helper.c:731:6: [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(number) == 0) { data/sipsak-0.9.7/src/helper.c:748: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(num); data/sipsak-0.9.7/src/helper.c:824:7: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). j = getchar(); data/sipsak-0.9.7/src/request.c:64: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:76: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:110: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:140: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:189: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:200: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:202: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(mes_body); data/sipsak-0.9.7/src/request.c:205:32: [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 = SIPSAK_MES_STR_LEN + strlen(username); data/sipsak-0.9.7/src/request.c:208: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:211: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). req_buff += strlen(req_buff); data/sipsak-0.9.7/src/request.c:222: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). req_buff += strlen(req_buff) - 1; data/sipsak-0.9.7/src/shoot.c:441:38: [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 (!STRNCASECMP(received, ruri, strlen(ruri))) { data/sipsak-0.9.7/src/shoot.c:503: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). if (STRNCASECMP(received, ruri, strlen(ruri))==0) { data/sipsak-0.9.7/src/shoot.c:586:38: [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 (!STRNCASECMP(received, ruri, strlen(ruri))) { data/sipsak-0.9.7/src/shoot.c:889: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). usern = str_alloc(strlen(username) + 12); data/sipsak-0.9.7/src/shoot.c:893: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). if (*(username + strlen(username) - 1) != '@') { data/sipsak-0.9.7/src/shoot.c:894: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). usern = str_alloc(strlen(username) + 2); data/sipsak-0.9.7/src/shoot.c:937: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). nameend=(int)strlen(request); data/sipsak-0.9.7/src/sipsak.c:408: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). if (strlen(optarg) == 1 && STRNCASECMP(optarg, "-", 1) == 0) { data/sipsak-0.9.7/src/sipsak.c:416:25: [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). password=str_alloc(strlen(optarg) + 1); data/sipsak-0.9.7/src/sipsak.c:417:6: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(password, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:417:32: [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). strncpy(password, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:427:24: [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). mes_body=str_alloc(strlen(optarg) + 1); data/sipsak-0.9.7/src/sipsak.c:428:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(mes_body, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:428:31: [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). strncpy(mes_body, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:431: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). backup=str_alloc(strlen(optarg)+1); data/sipsak-0.9.7/src/sipsak.c:432:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:432: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). strncpy(backup, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:447:25: [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). from_uri=str_alloc(strlen(optarg)+1); data/sipsak-0.9.7/src/sipsak.c:448:6: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(from_uri, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:448:32: [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). strncpy(from_uri, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:453: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(optarg) == 5 && STRNCASECMP(optarg, "empty", 5) == 0) || data/sipsak-0.9.7/src/sipsak.c:454:7: [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(optarg) == 4 && STRNCASECMP(optarg, "none", 4) == 0)) { data/sipsak-0.9.7/src/sipsak.c:457: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). else if ((strlen(optarg) == 1 && STRNCASECMP(optarg, "*", 1) == 0) || data/sipsak-0.9.7/src/sipsak.c:458: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). (strlen(optarg) == 4 && STRNCASECMP(optarg, "star", 4) == 0)) { data/sipsak-0.9.7/src/sipsak.c:463: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). backup=str_alloc(strlen(optarg)+1); data/sipsak-0.9.7/src/sipsak.c:464:6: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(backup, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:464:30: [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). strncpy(backup, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:480: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). contact_uri=str_alloc(strlen(optarg)+1); data/sipsak-0.9.7/src/sipsak.c:481:7: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(contact_uri, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:481:36: [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). strncpy(contact_uri, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:500: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). if (strlen(optarg) == 3 && data/sipsak-0.9.7/src/sipsak.c:504:14: [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). else if (strlen(optarg) == 3 && data/sipsak-0.9.7/src/sipsak.c:509:14: [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). else if (strlen(optarg) == 3 && data/sipsak-0.9.7/src/sipsak.c:523: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). if (strlen(optarg) != 1 && STRNCASECMP(optarg, "-", 1) != 0) { data/sipsak-0.9.7/src/sipsak.c:540:14: [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). else if (strlen(optarg) == 1 && STRNCASECMP(optarg, "-", 1) == 0) { data/sipsak-0.9.7/src/sipsak.c:573: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). if (strlen(optarg) < SIPSAK_HASHHEXLEN_MD5) { data/sipsak-0.9.7/src/sipsak.c:612: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). if (strlen(optarg) == 4 && STRNCASECMP(optarg, "rand", 4) == 0) { data/sipsak-0.9.7/src/sipsak.c:620: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). con_dis=str_alloc(strlen(optarg) + 1); data/sipsak-0.9.7/src/sipsak.c:621:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(con_dis, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:621:30: [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). strncpy(con_dis, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:695: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). if (strlen(optarg) == 4 && STRNCASECMP(optarg,"sips",4) == 0){ data/sipsak-0.9.7/src/sipsak.c:699:14: [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). else if (strlen(optarg) != 3 || STRNCASECMP(optarg,"sip",3) != 0){ data/sipsak-0.9.7/src/sipsak.c:738:25: [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). backup = str_alloc(strlen(domainname)+1+6); data/sipsak-0.9.7/src/sipsak.c:739: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). snprintf(backup, strlen(domainname)+6, "%s:%i", domainname, port); data/sipsak-0.9.7/src/sipsak.c:761: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). auth_username=str_alloc(strlen(optarg) + 1); data/sipsak-0.9.7/src/sipsak.c:762:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(auth_username, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:762:36: [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). strncpy(auth_username, optarg, strlen(optarg)); data/sipsak-0.9.7/src/sipsak.c:864: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). backup = str_alloc(strlen(headers) + 30); // FIXME data/sipsak-0.9.7/src/sipsak.c:868: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). backup = headers + strlen(headers) - 1; data/sipsak-0.9.7/src/transport.c:693: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). ret = sendto(cd->usock, mes, strlen(mes), 0, (struct sockaddr *) &(cd->adr), sizeof(struct sockaddr)); data/sipsak-0.9.7/src/transport.c:700:48: [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). ret = gnutls_record_send(tls_session, mes, strlen(mes)); data/sipsak-0.9.7/src/transport.c:708:32: [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). ret = send(cd->csock, mes, strlen(mes), 0); ANALYSIS SUMMARY: Hits = 322 Lines analyzed = 7220 in approximately 1.02 seconds (7070 lines/second) Physical Source Lines of Code (SLOC) = 5925 Hits@level = [0] 436 [1] 216 [2] 52 [3] 3 [4] 51 [5] 0 Hits@level+ = [0+] 758 [1+] 322 [2+] 106 [3+] 54 [4+] 51 [5+] 0 Hits/KSLOC@level+ = [0+] 127.932 [1+] 54.346 [2+] 17.8903 [3+] 9.11392 [4+] 8.60759 [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.