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/xtables-addons-3.13/include/linux/netfilter/nf_nat.h Examining data/xtables-addons-3.13/include/linux/netfilter/nf_conntrack_tuple_common.h Examining data/xtables-addons-3.13/include/linux/netfilter.h Examining data/xtables-addons-3.13/extensions/xt_quota2.h Examining data/xtables-addons-3.13/extensions/xt_quota2.c Examining data/xtables-addons-3.13/extensions/xt_psd.h Examining data/xtables-addons-3.13/extensions/xt_psd.c Examining data/xtables-addons-3.13/extensions/xt_lscan.h Examining data/xtables-addons-3.13/extensions/xt_lscan.c Examining data/xtables-addons-3.13/extensions/xt_length2.h Examining data/xtables-addons-3.13/extensions/xt_length2.c Examining data/xtables-addons-3.13/extensions/xt_ipv4options.h Examining data/xtables-addons-3.13/extensions/xt_ipv4options.c Examining data/xtables-addons-3.13/extensions/xt_ipp2p.h Examining data/xtables-addons-3.13/extensions/xt_ipp2p.c Examining data/xtables-addons-3.13/extensions/xt_iface.h Examining data/xtables-addons-3.13/extensions/xt_iface.c Examining data/xtables-addons-3.13/extensions/xt_gradm.h Examining data/xtables-addons-3.13/extensions/xt_geoip.h Examining data/xtables-addons-3.13/extensions/xt_geoip.c Examining data/xtables-addons-3.13/extensions/xt_fuzzy.h Examining data/xtables-addons-3.13/extensions/xt_fuzzy.c Examining data/xtables-addons-3.13/extensions/xt_condition.h Examining data/xtables-addons-3.13/extensions/xt_condition.c Examining data/xtables-addons-3.13/extensions/xt_TARPIT.h Examining data/xtables-addons-3.13/extensions/xt_TARPIT.c Examining data/xtables-addons-3.13/extensions/xt_SYSRQ.c Examining data/xtables-addons-3.13/extensions/xt_PROTO.h Examining data/xtables-addons-3.13/extensions/xt_PROTO.c Examining data/xtables-addons-3.13/extensions/xt_LOGMARK.h Examining data/xtables-addons-3.13/extensions/xt_LOGMARK.c Examining data/xtables-addons-3.13/extensions/xt_IPMARK.h Examining data/xtables-addons-3.13/extensions/xt_IPMARK.c Examining data/xtables-addons-3.13/extensions/xt_ECHO.c Examining data/xtables-addons-3.13/extensions/xt_DNETMAP.h Examining data/xtables-addons-3.13/extensions/xt_DNETMAP.c Examining data/xtables-addons-3.13/extensions/xt_DHCPMAC.h Examining data/xtables-addons-3.13/extensions/xt_DHCPMAC.c Examining data/xtables-addons-3.13/extensions/xt_DELUDE.c Examining data/xtables-addons-3.13/extensions/xt_CHAOS.h Examining data/xtables-addons-3.13/extensions/xt_CHAOS.c Examining data/xtables-addons-3.13/extensions/pknock/xt_pknock.h Examining data/xtables-addons-3.13/extensions/pknock/xt_pknock.c Examining data/xtables-addons-3.13/extensions/pknock/pknlusr.c Examining data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c Examining data/xtables-addons-3.13/extensions/mac.c Examining data/xtables-addons-3.13/extensions/libxt_quota2.c Examining data/xtables-addons-3.13/extensions/libxt_psd.c Examining data/xtables-addons-3.13/extensions/libxt_lscan.c Examining data/xtables-addons-3.13/extensions/libxt_length2.c Examining data/xtables-addons-3.13/extensions/libxt_ipv4options.c Examining data/xtables-addons-3.13/extensions/libxt_ipp2p.c Examining data/xtables-addons-3.13/extensions/libxt_iface.c Examining data/xtables-addons-3.13/extensions/libxt_gradm.c Examining data/xtables-addons-3.13/extensions/libxt_geoip.c Examining data/xtables-addons-3.13/extensions/libxt_fuzzy.c Examining data/xtables-addons-3.13/extensions/libxt_dhcpmac.c Examining data/xtables-addons-3.13/extensions/libxt_condition.c Examining data/xtables-addons-3.13/extensions/libxt_TARPIT.c Examining data/xtables-addons-3.13/extensions/libxt_SYSRQ.c Examining data/xtables-addons-3.13/extensions/libxt_PROTO.c Examining data/xtables-addons-3.13/extensions/libxt_LOGMARK.c Examining data/xtables-addons-3.13/extensions/libxt_IPMARK.c Examining data/xtables-addons-3.13/extensions/libxt_ECHO.c Examining data/xtables-addons-3.13/extensions/libxt_DNETMAP.c Examining data/xtables-addons-3.13/extensions/libxt_DHCPMAC.c Examining data/xtables-addons-3.13/extensions/libxt_DELUDE.c Examining data/xtables-addons-3.13/extensions/libxt_CHAOS.c Examining data/xtables-addons-3.13/extensions/compat_xtnu.h Examining data/xtables-addons-3.13/extensions/compat_xtables.h Examining data/xtables-addons-3.13/extensions/compat_xtables.c Examining data/xtables-addons-3.13/extensions/compat_user.h Examining data/xtables-addons-3.13/extensions/compat_skbuff.h Examining data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.h Examining data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c Examining data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT_cl.h Examining data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT_cl.c Examining data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT.c Examining data/xtables-addons-3.13/extensions/ACCOUNT/iptaccount.c Examining data/xtables-addons-3.13/doc/api/xt-a.c Examining data/xtables-addons-3.13/doc/api/2.6.35.c FINAL RESULTS: data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT.c:83: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(accountinfo->table_name, optarg); data/xtables-addons-3.13/extensions/libxt_DNETMAP.c:30: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(MODULENAME " target options:\n" data/xtables-addons-3.13/extensions/libxt_condition.c:45: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(info->name, optarg); data/xtables-addons-3.13/extensions/libxt_geoip.c:84: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(buf, sizeof(buf), GEOIP_DB_DIR "/%s.iv6", code); data/xtables-addons-3.13/extensions/libxt_geoip.c:86: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(buf, sizeof(buf), GEOIP_DB_DIR "/%s.iv4", code); data/xtables-addons-3.13/extensions/libxt_iface.c:115: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(info->ifname, optarg); data/xtables-addons-3.13/extensions/pknock/xt_pknock.c:683:37: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. crypt_to_hex(char *out, const char *crypt, unsigned int size) data/xtables-addons-3.13/extensions/pknock/xt_pknock.c:687:21: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. unsigned char c = crypt[i]; data/xtables-addons-3.13/extensions/xt_SYSRQ.c:211:2: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(sysrq_digest_password, "%pI4,%s", &iph->daddr, sysrq_password); data/xtables-addons-3.13/extensions/xt_SYSRQ.c:244:2: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(sysrq_digest_password, "%pI6,%s", &iph->daddr, sysrq_password); data/xtables-addons-3.13/extensions/ACCOUNT/iptaccount.c:83:20: [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 ((optchar = getopt(argc, argv, "uhacfsl:")) != -1) data/xtables-addons-3.13/extensions/ACCOUNT/iptaccount.c:40: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 buf[16]; data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT_cl.c:118:2: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ctx->data, &ctx->handle, sizeof(struct ipt_acc_handle_sockopt)); data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:60: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[ACCOUNT_TABLE_NAME_LEN]; data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:633: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(dest->data, data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:653: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(network_16->mask_24[b], src_16->mask_24[b], data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:674: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(network_8->mask_16[a], src_8->mask_16[a], data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:691:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(network_16->mask_24[b], src_16->mask_24[b], data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:775: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(ian->ipt_acc_tmpbuf + *tmpbuf_pos, &handle_ip, handle_ip_size); data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:983: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(&ian->ipt_acc_handles[handle.handle_nr], &dest, data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:1085:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(tnames, ian->ipt_acc_tables[i].name, name_len); data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.h:44: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 table_name[ACCOUNT_TABLE_NAME_LEN]; data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.h:51: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[ACCOUNT_TABLE_NAME_LEN]; /* Used for HANDLE_PREPARE_READ/ data/xtables-addons-3.13/extensions/compat_xtables.h:44:20: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). # define proc_open open data/xtables-addons-3.13/extensions/compat_xtnu.h:14: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[sizeof(((struct xt_match *)NULL)->name) - 1 - sizeof(void *)]; data/xtables-addons-3.13/extensions/compat_xtnu.h:28: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[sizeof(((struct xt_target *)NULL)->name) - 1 - sizeof(void *)]; data/xtables-addons-3.13/extensions/compat_xtnu.h:45: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(&q, m->name + sizeof(m->name) - sizeof(void *), sizeof(void *)); data/xtables-addons-3.13/extensions/compat_xtnu.h:52: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(&q, t->name + sizeof(t->name) - sizeof(void *), sizeof(void *)); data/xtables-addons-3.13/extensions/libxt_geoip.c:77: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[256]; data/xtables-addons-3.13/extensions/libxt_geoip.c:88:11: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int fd = open(buf, O_RDONLY); data/xtables-addons-3.13/extensions/libxt_ipv4options.c:23:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char *const v4opt_names[32] = { data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:132: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). info->max_time = atoi(optarg); data/xtables-addons-3.13/extensions/pknock/pknlusr.c:79:3: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ipbuf[INET_ADDRSTRLEN]; data/xtables-addons-3.13/extensions/pknock/xt_pknock.c:59: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 rule_name[XT_PKNOCK_MAX_BUF_LEN+1]; data/xtables-addons-3.13/extensions/pknock/xt_pknock.c:668: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(m + 1, &msg, m->len); data/xtables-addons-3.13/extensions/pknock/xt_pknock.c:707: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 result[64] = ""; // 64 bytes * 8 = 512 bits data/xtables-addons-3.13/extensions/pknock/xt_pknock.h:33: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 rule_name[XT_PKNOCK_MAX_BUF_LEN+1]; data/xtables-addons-3.13/extensions/pknock/xt_pknock.h:35: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 open_secret[XT_PKNOCK_MAX_PASSWD_LEN+1]; data/xtables-addons-3.13/extensions/pknock/xt_pknock.h: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 close_secret[XT_PKNOCK_MAX_PASSWD_LEN+1]; data/xtables-addons-3.13/extensions/pknock/xt_pknock.h:47: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 rule_name[XT_PKNOCK_MAX_BUF_LEN+1]; data/xtables-addons-3.13/extensions/xt_DHCPMAC.c:25: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 chaddr[16]; data/xtables-addons-3.13/extensions/xt_DHCPMAC.h:8: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 addr[ETH_ALEN]; data/xtables-addons-3.13/extensions/xt_DNETMAP.c:78: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 prefix_str[20]; data/xtables-addons-3.13/extensions/xt_DNETMAP.c:80: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 proc_str_data[20], proc_str_stat[25]; data/xtables-addons-3.13/extensions/xt_DNETMAP.c:277:2: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&p->prefix, mr, sizeof(*mr)); data/xtables-addons-3.13/extensions/xt_DNETMAP.c:285:2: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf(p->prefix_str, "%pI4/%u", &mr->min_addr.ip, data/xtables-addons-3.13/extensions/xt_DNETMAP.c:288:2: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf(p->proc_str_data, "%pI4_%u", &mr->min_addr.ip, data/xtables-addons-3.13/extensions/xt_DNETMAP.c:290:2: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf(p->proc_str_stat, "%pI4_%u_stat", &mr->min_addr.ip, data/xtables-addons-3.13/extensions/xt_DNETMAP.c:593: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[sizeof("+192.168.100.100:200.200.200.200")]; data/xtables-addons-3.13/extensions/xt_DNETMAP.c:598: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[25]; data/xtables-addons-3.13/extensions/xt_DNETMAP.c:709: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(str, "%pI4:%pI4", &addr1, &addr2); data/xtables-addons-3.13/extensions/xt_ECHO.c:78: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(skb_put(newskb, data_len), payload, data_len); data/xtables-addons-3.13/extensions/xt_ECHO.c:176: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(skb_put(newskb, data_len), payload, data_len); data/xtables-addons-3.13/extensions/xt_LOGMARK.h:5: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 prefix[14]; data/xtables-addons-3.13/extensions/xt_SYSRQ.c:37:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char sysrq_password[64]; data/xtables-addons-3.13/extensions/xt_SYSRQ.c:38:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char sysrq_hash[16] = "sha1"; data/xtables-addons-3.13/extensions/xt_condition.c:58: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[sizeof(((struct xt_condition_mtinfo *)NULL)->name)]; data/xtables-addons-3.13/extensions/xt_condition.c:167: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(var->name, info->name, sizeof(info->name)); data/xtables-addons-3.13/extensions/xt_condition.h:9: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[CONDITION_NAME_LEN]; data/xtables-addons-3.13/extensions/xt_iface.h:21:2: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char ifname[IFNAMSIZ]; data/xtables-addons-3.13/extensions/xt_quota2.c:40: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[sizeof(((struct xt_quota_mtinfo2 *)NULL)->name)]; data/xtables-addons-3.13/extensions/xt_quota2.c:84: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[sizeof("+-18446744073709551616")]; data/xtables-addons-3.13/extensions/xt_quota2.h:15: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[15]; data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT.c:77: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(optarg) > ACCOUNT_TABLE_NAME_LEN - 1) data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT_cl.c:79:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ctx->handle.name, table, ACCOUNT_TABLE_NAME_LEN-1); data/xtables-addons-3.13/extensions/ACCOUNT/libxt_ACCOUNT_cl.c:197: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). ctx->pos += strlen(ctx->data + ctx->pos) + 1; data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:224:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(ipt_acc_tables[i].name, name, ACCOUNT_TABLE_NAME_LEN-1); data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:1069: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). size += strlen(ian->ipt_acc_tables[i].name) + 1; data/xtables-addons-3.13/extensions/ACCOUNT/xt_ACCOUNT.c:1084: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). name_len = strlen(ian->ipt_acc_tables[i].name) + 1; data/xtables-addons-3.13/extensions/compat_xtables.h:45:20: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). # define proc_read read data/xtables-addons-3.13/extensions/libxt_LOGMARK.c:66: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(optarg) > sizeof(info->prefix)) data/xtables-addons-3.13/extensions/libxt_LOGMARK.c:73:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(info->prefix, optarg, sizeof(info->prefix)); data/xtables-addons-3.13/extensions/libxt_condition.c:44: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(optarg) < sizeof(info->name)) data/xtables-addons-3.13/extensions/libxt_geoip.c:113:2: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(fd, subnets, sb.st_size); data/xtables-addons-3.13/extensions/libxt_geoip.c:159: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(cc) != 2) /* Country must be 2 chars long according data/xtables-addons-3.13/extensions/libxt_iface.c:68:9: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). return strlen(name) < IFNAMSIZ && strpbrk(name, invalid_chars) == NULL; data/xtables-addons-3.13/extensions/libxt_quota2.c:73:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(info->name, optarg, sizeof(info->name)); data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:157:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(info->rule_name, optarg, sizeof(info->rule_name) - 1); data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:159: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). info->rule_name_len = strlen(info->rule_name); data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:172:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(info->open_secret, optarg, sizeof(info->open_secret) - 1); data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:174: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). info->open_secret_len = strlen(info->open_secret); data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:184:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(info->close_secret, optarg, sizeof(info->close_secret) - 1); data/xtables-addons-3.13/extensions/pknock/libxt_pknock.c:186: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). info->close_secret_len = strlen(info->close_secret); data/xtables-addons-3.13/extensions/pknock/xt_pknock.c:443:2: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(rule->rule_name, info->rule_name, info->rule_name_len); data/xtables-addons-3.13/extensions/xt_DNETMAP.c:666: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). if( ! (in4_pton(c2,strlen(c2),(void *)&addr2, '\0', NULL) && data/xtables-addons-3.13/extensions/xt_DNETMAP.c:667: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). in4_pton(c,strlen(c),(void *)&addr1, ':', NULL))) data/xtables-addons-3.13/extensions/xt_DNETMAP.c:716: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). if( ! in4_pton(c,strlen(c),(void *)&addr1, '\0', NULL)) data/xtables-addons-3.13/extensions/xt_SYSRQ.c:123: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). strlen(sysrq_digest_password)) != 0) data/xtables-addons-3.13/extensions/xt_quota2.c:145:3: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(e->name, q->name, sizeof(e->name)); ANALYSIS SUMMARY: Hits = 89 Lines analyzed = 13920 in approximately 0.36 seconds (38568 lines/second) Physical Source Lines of Code (SLOC) = 10713 Hits@level = [0] 182 [1] 26 [2] 52 [3] 1 [4] 10 [5] 0 Hits@level+ = [0+] 271 [1+] 89 [2+] 63 [3+] 11 [4+] 10 [5+] 0 Hits/KSLOC@level+ = [0+] 25.2964 [1+] 8.30766 [2+] 5.88071 [3+] 1.02679 [4+] 0.933445 [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.