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/sipcalc-1.1.6/src/sub.c Examining data/sipcalc-1.1.6/src/interface.c Examining data/sipcalc-1.1.6/src/sub-output.c Examining data/sipcalc-1.1.6/src/sub-func.c Examining data/sipcalc-1.1.6/include/sub.h Examining data/sipcalc-1.1.6/include/sub-o.h FINAL RESULTS: data/sipcalc-1.1.6/include/sub.h:81:41: [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. #define safe_snprintf(dest,whatever...) snprintf(dest,sizeof(dest),## whatever) data/sipcalc-1.1.6/src/sub.c:742:3: [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. getopt_long (argc, argv, "abcdehHiI:n:rs:S:tuvVwx4:6:", l_o, data/sipcalc-1.1.6/src/sub.c:745: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, "abcdehHiI:n:rs:S:tuvVwx4:6:")) != -1) { data/sipcalc-1.1.6/include/sub.h:102: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 class_remark[64]; data/sipcalc-1.1.6/include/sub.h:103: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 pres_bitmap[36]; data/sipcalc-1.1.6/include/sub.h:123: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 class_remark[64]; data/sipcalc-1.1.6/include/sub.h:124: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 comment[64]; data/sipcalc-1.1.6/include/sub.h: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[IFNAMSIZ + 1]; data/sipcalc-1.1.6/include/sub.h:137: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 p_v4addr[19], p_v4nmask[16]; data/sipcalc-1.1.6/include/sub.h:138: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 p_v6addr[44]; data/sipcalc-1.1.6/include/sub.h:139: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 errorstr[64]; data/sipcalc-1.1.6/include/sub.h:140: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 cmdstr[128]; data/sipcalc-1.1.6/include/sub.h:156: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 ipv6addr[40]; data/sipcalc-1.1.6/include/sub.h:157: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 ipv4addr[16]; data/sipcalc-1.1.6/include/sub.h: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 nmask[4]; data/sipcalc-1.1.6/include/sub.h:162: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 str[128]; data/sipcalc-1.1.6/include/sub.h:169: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 str[128]; data/sipcalc-1.1.6/src/sub-func.c:75: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[16]; data/sipcalc-1.1.6/src/sub-func.c:126:7: [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). m = atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:145: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 addr[16]; data/sipcalc-1.1.6/src/sub-func.c:236:6: [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). m = atoi (sl); data/sipcalc-1.1.6/src/sub-func.c:255:7: [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). y = atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:296:6: [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). y = atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:308: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[128]; data/sipcalc-1.1.6/src/sub-func.c:323:7: [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). z = atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:344: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 quad[17]; data/sipcalc-1.1.6/src/sub-func.c:357: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 bitmap[36]; data/sipcalc-1.1.6/src/sub-func.c:383: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[128], buf2[128]; data/sipcalc-1.1.6/src/sub-func.c:432:28: [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). ifi->v4ad.n_nmaskbits = atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:733: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 str[5]; data/sipcalc-1.1.6/src/sub-func.c:850: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[128]; data/sipcalc-1.1.6/src/sub-func.c:878:20: [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). (n << 8) | atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:882:20: [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). (n << 8) | atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:884: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). n = atoi (buf); data/sipcalc-1.1.6/src/sub-func.c:910:16: [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). *nmaskbits = atoi (nmask); data/sipcalc-1.1.6/src/sub-func.c:1090: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 outad[44]; data/sipcalc-1.1.6/src/sub-func.c:1091: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 tmpad[5]; data/sipcalc-1.1.6/src/sub-func.c:1181:6: [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). x = atoi (spstr.nmask); data/sipcalc-1.1.6/src/sub-func.c:1235: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 retaddr[1024]; data/sipcalc-1.1.6/src/sub-func.c:1274: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 retaddr[1024]; data/sipcalc-1.1.6/src/sub-func.c:1275: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 ip6addr[128]; data/sipcalc-1.1.6/src/sub-func.c:1318: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 retaddr[1024]; data/sipcalc-1.1.6/src/sub-func.c:1319: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 ip6addr[128]; data/sipcalc-1.1.6/src/sub-func.c:1370: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 retaddr[1024]; data/sipcalc-1.1.6/src/sub-func.c:1371: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 ip6addr[128]; data/sipcalc-1.1.6/src/sub-func.c:1423: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 extra[32]; data/sipcalc-1.1.6/src/sub-func.c:1425: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 raddr[1024]; data/sipcalc-1.1.6/src/sub-func.c:1426: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 retaddr[1024]; data/sipcalc-1.1.6/src/sub-output.c:122: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 ((struct if_info *) &ifi_tmp, (struct if_info *) ifi, sizeof(struct if_info)); data/sipcalc-1.1.6/src/sub-output.c:447: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 inbuf[40], outbuf[256]; data/sipcalc-1.1.6/src/sub-output.c:626: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 ((struct if_info *) &ifi_tmp, (struct if_info *) ifi, sizeof(struct if_info)); data/sipcalc-1.1.6/src/sub.c:194: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[2], sbuf[128], dbuf[128], *arg1, *arg2; data/sipcalc-1.1.6/src/sub.c:306: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 expaddr[128]; data/sipcalc-1.1.6/src/sub.c:542: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 ((struct if_info *) ifarg_cur, (struct if_info *) if_cur, sizeof (struct if_info)); data/sipcalc-1.1.6/src/sub.c:566: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 ((struct if_info *) ifarg_cur, (struct if_info *) if_cur, sizeof (struct if_info)); data/sipcalc-1.1.6/src/sub.c:631:7: [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 ((struct if_info *) ifarg_cur, (struct if_info *) if_cur, sizeof (struct if_info)); data/sipcalc-1.1.6/src/sub.c:675: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 expaddr[128]; data/sipcalc-1.1.6/src/sub.c:676: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 oldcmdstr[128]; data/sipcalc-1.1.6/src/sub.c:678: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 *stdinarg[3]; data/sipcalc-1.1.6/src/sub.c:778:22: [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). m_argv4.numnets = atoi (optarg); data/sipcalc-1.1.6/src/sub.c:961: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. bzero ((char *) stdinarg[x], 128); data/sipcalc-1.1.6/include/sub.h:79:32: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). #define safe_strncpy(dest,src) strncpy(dest,src,sizeof(dest)-1+TERMINATE(dest)*0) data/sipcalc-1.1.6/include/sub.h:80:32: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. #define safe_strncat(dest,src) strncat(dest,src,sizeof(dest)-1+TERMINATE(dest)*0) data/sipcalc-1.1.6/src/interface.c:180:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (if_cur->name, ifr->ifr_name, IFNAMSIZ); data/sipcalc-1.1.6/src/sub-func.c:60: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). for (x = 0; x < strlen (buf); x++) data/sipcalc-1.1.6/src/sub-func.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 (addr) < 7 || strlen (addr) > 15) data/sipcalc-1.1.6/src/sub-func.c:77: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). if (strlen (addr) < 7 || strlen (addr) > 15) data/sipcalc-1.1.6/src/sub-func.c:82: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). while (x < strlen (addr)) { data/sipcalc-1.1.6/src/sub-func.c:92: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). while (x < strlen (addr)) { data/sipcalc-1.1.6/src/sub-func.c:95: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). while (z < strlen (V4ADDR_VAL) && !y) { data/sipcalc-1.1.6/src/sub-func.c:105: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). if (addr[0] == '.' || addr[strlen (addr) - 1] == '.') data/sipcalc-1.1.6/src/sub-func.c:109: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). while (x < (strlen (addr) - 1)) { data/sipcalc-1.1.6/src/sub-func.c:119: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). while (addr[y] != '.' && y < strlen (addr)) { data/sipcalc-1.1.6/src/sub-func.c:149: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 (in_addr) > 18) data/sipcalc-1.1.6/src/sub-func.c:155: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). while (x < strlen (in_addr) && !y) { data/sipcalc-1.1.6/src/sub-func.c:215: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 (sl) < 1 || strlen (sl) > 2) data/sipcalc-1.1.6/src/sub-func.c:215: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). if (strlen (sl) < 1 || strlen (sl) > 2) data/sipcalc-1.1.6/src/sub-func.c:223: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). while (x < strlen (sl)) { data/sipcalc-1.1.6/src/sub-func.c:226: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). while (z < strlen (V4ADDR_VAL) && !y) { data/sipcalc-1.1.6/src/sub-func.c:249: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 (buf) < 1) data/sipcalc-1.1.6/src/sub-func.c:252: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 (buf) < 4) { data/sipcalc-1.1.6/src/sub-func.c:289: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 (buf) < 1) data/sipcalc-1.1.6/src/sub-func.c:291: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 (buf) > 4) data/sipcalc-1.1.6/src/sub-func.c:329: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). while (quad[x] != '.' && quad[x] != '\0' && x < strlen (quad)) { data/sipcalc-1.1.6/src/sub-func.c:406: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). if (strlen (s_find) > 2) data/sipcalc-1.1.6/src/sub-func.c:411: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). while (x < strlen (s_find)) { data/sipcalc-1.1.6/src/sub-func.c:414: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). while (z < strlen (NETMASK_VAL) && !y) { data/sipcalc-1.1.6/src/sub-func.c:584: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). if (strlen (split) > 1 && strlen (split) < 5) { data/sipcalc-1.1.6/src/sub-func.c:584: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). if (strlen (split) > 1 && strlen (split) < 5) { data/sipcalc-1.1.6/src/sub-func.c:594: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). x = strlen (split); data/sipcalc-1.1.6/src/sub-func.c:597: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). y = strlen (split); data/sipcalc-1.1.6/src/sub-func.c:605: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). x = strlen (addr) - strlen (split); data/sipcalc-1.1.6/src/sub-func.c:605: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). x = strlen (addr) - strlen (split); data/sipcalc-1.1.6/src/sub-func.c:611: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). y = strlen (addr) - strlen (split); data/sipcalc-1.1.6/src/sub-func.c:611: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). y = strlen (addr) - strlen (split); data/sipcalc-1.1.6/src/sub-func.c:613: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). y = strlen (addr); data/sipcalc-1.1.6/src/sub-func.c:620: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). x = strlen (addr) - (strlen (spstr->ipv4addr) + strlen (spstr->nmask)); data/sipcalc-1.1.6/src/sub-func.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). x = strlen (addr) - (strlen (spstr->ipv4addr) + strlen (spstr->nmask)); data/sipcalc-1.1.6/src/sub-func.c:620: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). x = strlen (addr) - (strlen (spstr->ipv4addr) + strlen (spstr->nmask)); data/sipcalc-1.1.6/src/sub-func.c:621: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 (spstr->nmask) > 0) data/sipcalc-1.1.6/src/sub-func.c:624:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (spstr->ipv6addr, addr, x); data/sipcalc-1.1.6/src/sub-func.c:636: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 (addr) < 2) data/sipcalc-1.1.6/src/sub-func.c:639: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 (addr) > 39) data/sipcalc-1.1.6/src/sub-func.c:644: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). while (x < strlen (addr)) { data/sipcalc-1.1.6/src/sub-func.c:647: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). while (z < strlen (V6ADDR_VAL) && !y) { data/sipcalc-1.1.6/src/sub-func.c:659: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). while (x < strlen (addr)) { data/sipcalc-1.1.6/src/sub-func.c:672: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 (type == V6TYPE_STANDARD && addr[strlen (addr) - 1] == ':' data/sipcalc-1.1.6/src/sub-func.c:673: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). && addr[strlen (addr) - 2] != ':') data/sipcalc-1.1.6/src/sub-func.c:677: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). for (x = 0; x < strlen (addr); x++) { data/sipcalc-1.1.6/src/sub-func.c:684: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). while (x < strlen (addr) - 1) { data/sipcalc-1.1.6/src/sub-func.c:710: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). for (x = 0; x < strlen (addr); x++) { data/sipcalc-1.1.6/src/sub-func.c:742: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). while (x < strlen (addr) - 1) { data/sipcalc-1.1.6/src/sub-func.c:751: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). while (x < strlen (addr) - 1) { data/sipcalc-1.1.6/src/sub-func.c:760: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). while (x < strlen (addr)) { data/sipcalc-1.1.6/src/sub-func.c:765: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). if (addr[strlen (addr) - 1] == ':' data/sipcalc-1.1.6/src/sub-func.c:766: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). && addr[strlen (addr) - 2] != ':') data/sipcalc-1.1.6/src/sub-func.c:781: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). while (y < strlen (addr) && addr[y] != ':') { data/sipcalc-1.1.6/src/sub-func.c:800: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). while (y < strlen (addr) && addr[y] != ':') { data/sipcalc-1.1.6/src/sub-func.c:813: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). while (y < strlen (addr) - 1) { data/sipcalc-1.1.6/src/sub-func.c:829: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). while (y < strlen (addr) && addr[y] != ':') { data/sipcalc-1.1.6/src/sub-func.c:890: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). && x < strlen (spstr.ipv4addr)) { data/sipcalc-1.1.6/src/sub-func.c:1168: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). while (x < strlen (spstr.nmask)) { data/sipcalc-1.1.6/src/sub-func.c:1171: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). while (z < strlen (NETMASK_VAL) && !y) { data/sipcalc-1.1.6/src/sub-func.c:1473: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 (addr) > 1023) data/sipcalc-1.1.6/src/sub-func.c:1487:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (raddr, addr, strlen (addr) - strlen (tmpstr)); data/sipcalc-1.1.6/src/sub-func.c:1487: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 (raddr, addr, strlen (addr) - strlen (tmpstr)); data/sipcalc-1.1.6/src/sub-func.c:1487:41: [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 (raddr, addr, strlen (addr) - strlen (tmpstr)); data/sipcalc-1.1.6/src/sub-func.c:1493:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (raddr, addr, strlen (addr) - strlen (tmpstr)); data/sipcalc-1.1.6/src/sub-func.c:1493: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 (raddr, addr, strlen (addr) - strlen (tmpstr)); data/sipcalc-1.1.6/src/sub-func.c:1493: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). strncpy (raddr, addr, strlen (addr) - strlen (tmpstr)); data/sipcalc-1.1.6/src/sub-output.c:464: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). for (x = (strlen (inbuf) - 1); x >= 0; x--) { data/sipcalc-1.1.6/src/sub.c:147: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). for (x = 0; x < strlen (sbuf); x++) { data/sipcalc-1.1.6/src/sub.c:155: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). x = strlen (sbuf) - 1; data/sipcalc-1.1.6/src/sub.c:160: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). if (!strlen (sbuf)) data/sipcalc-1.1.6/src/sub.c:165: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). while (x < strlen (sbuf)) { data/sipcalc-1.1.6/src/sub.c:170: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). while (sbuf[x] == ' ' && x < strlen (sbuf)) data/sipcalc-1.1.6/src/sub.c:172: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). while (sbuf[x] != ' ' && x < strlen (sbuf)) { data/sipcalc-1.1.6/src/sub.c:180: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). if (dbuf[strlen (dbuf) - 1] == ' ') data/sipcalc-1.1.6/src/sub.c:181: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). dbuf[strlen (dbuf) - 1] = '\0'; data/sipcalc-1.1.6/src/sub.c:184: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). for (x = 0; x < strlen (dbuf); x++) data/sipcalc-1.1.6/src/sub.c:212:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). x = read (0, buf, 1); data/sipcalc-1.1.6/src/sub.c:226:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). x = read (0, buf, 1); data/sipcalc-1.1.6/src/sub.c:249: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). while (y < strlen (dbuf) && y < argmax && dbuf[y] != ' ') { data/sipcalc-1.1.6/src/sub.c:255: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). while (y < strlen (dbuf) && z < 15 && dbuf[y] != ' ') { data/sipcalc-1.1.6/src/sub.c:261:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (args[0], arg1, 127); data/sipcalc-1.1.6/src/sub.c:262:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (args[1], arg2, 127); data/sipcalc-1.1.6/src/sub.c:322: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). if (strlen (argv[argcount]) > sizeof(expaddr)-1) { data/sipcalc-1.1.6/src/sub.c:436: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). if (tmpstr != NULL && (strlen (tmpstr) > 0)) { data/sipcalc-1.1.6/src/sub.c:439:46: [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). while (x < 15 && tmpstr[x] != ' ' && x < strlen(tmpstr)) { data/sipcalc-1.1.6/src/sub.c:465: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). if (tmpstr != NULL && (strlen (tmpstr) > 0)) { data/sipcalc-1.1.6/src/sub.c:468: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). while (x < 15 && tmpstr[x] != ' ' && x < strlen(tmpstr)) { data/sipcalc-1.1.6/src/sub.c:550:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (ifarg_cur->name, abox->str, IFNAMSIZ); data/sipcalc-1.1.6/src/sub.c:574:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy (ifarg_cur->name, abox->str, IFNAMSIZ); data/sipcalc-1.1.6/src/sub.c:599: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). if (tmpstr != NULL && (strlen (tmpstr) > 0)) { data/sipcalc-1.1.6/src/sub.c:602: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). while (x < 15 && tmpstr[x] != ' ' && x < strlen(tmpstr)) { data/sipcalc-1.1.6/src/sub.c:940: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). if (strlen (ifarg_cur->cmdstr) > 0) { data/sipcalc-1.1.6/src/sub.c:995: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 (ifarg_cur->cmdstr) > 0) { ANALYSIS SUMMARY: Hits = 157 Lines analyzed = 3937 in approximately 0.12 seconds (31940 lines/second) Physical Source Lines of Code (SLOC) = 3146 Hits@level = [0] 241 [1] 96 [2] 58 [3] 2 [4] 1 [5] 0 Hits@level+ = [0+] 398 [1+] 157 [2+] 61 [3+] 3 [4+] 1 [5+] 0 Hits/KSLOC@level+ = [0+] 126.51 [1+] 49.9046 [2+] 19.3897 [3+] 0.953592 [4+] 0.317864 [5+] 0 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.