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/pymilter-1.0.4/miltermodule.c FINAL RESULTS: data/pymilter-1.0.4/miltermodule.c:511:5: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(buf,"The %s callback must return int",cbname); data/pymilter-1.0.4/miltermodule.c:848:2: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf(err,"%s parameter must be callable",kwlist[i]); data/pymilter-1.0.4/miltermodule.c:460: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 untrapped_msg[80]; data/pymilter-1.0.4/miltermodule.c:462: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(untrapped_msg,"pymilter: untrapped exception in %.40s", data/pymilter-1.0.4/miltermodule.c:503:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[40]; data/pymilter-1.0.4/miltermodule.c:532: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[100]; data/pymilter-1.0.4/miltermodule.c:533: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(buf, "%d.%d.%d.%d", data/pymilter-1.0.4/miltermodule.c:546: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[100]; /* must be at least INET6_ADDRSTRLEN + 1 */ data/pymilter-1.0.4/miltermodule.c:847: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 err[80]; data/pymilter-1.0.4/miltermodule.c:1031: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 *message[MAX_ML_REPLY]; data/pymilter-1.0.4/miltermodule.c:1032: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 fmt[MAX_ML_REPLY + 16]; data/pymilter-1.0.4/miltermodule.c:1035:3: [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(fmt,"sz|"); data/pymilter-1.0.4/miltermodule.c:1040:3: [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(fmt+i+3,":setreply"); data/pymilter-1.0.4/miltermodule.c:646:57: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). PyObject *o = PyUnicode_FromStringAndSize(argv[i], strlen(argv[i])); data/pymilter-1.0.4/miltermodule.c:648:56: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). PyObject *o = PyString_FromStringAndSize(argv[i], strlen(argv[i])); ANALYSIS SUMMARY: Hits = 15 Lines analyzed = 1578 in approximately 0.07 seconds (21088 lines/second) Physical Source Lines of Code (SLOC) = 1223 Hits@level = [0] 0 [1] 2 [2] 11 [3] 0 [4] 2 [5] 0 Hits@level+ = [0+] 15 [1+] 15 [2+] 13 [3+] 2 [4+] 2 [5+] 0 Hits/KSLOC@level+ = [0+] 12.2649 [1+] 12.2649 [2+] 10.6296 [3+] 1.63532 [4+] 1.63532 [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.