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/rsstail-1.8/r2t.c FINAL RESULTS: data/rsstail-1.8/r2t.c:160:14: [3] (buffer) getopt: Some older implementations do not protect against internal buffer overflows (CWE-120, CWE-20). Check implementation on installation, or limit the size of all string inputs. while((sw = getopt(argc, argv, "A:Z:1b:PHztldrpacu:Ni:n:x:y:vVh")) != -1) data/rsstail-1.8/r2t.c:20: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(str + 1, str + what_len, strlen(str + what_len) + 1); data/rsstail-1.8/r2t.c:40: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(lt, gt + 1, strlen(gt + 1) + 1); data/rsstail-1.8/r2t.c:181:19: [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). bytes_limit = atoi(optarg); data/rsstail-1.8/r2t.c:198:14: [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). show_n = atoi(optarg); data/rsstail-1.8/r2t.c:211:15: [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). max_age = atoi(optarg); data/rsstail-1.8/r2t.c:280: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). check_interval = atoi(optarg); data/rsstail-1.8/r2t.c:11: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). int what_len = strlen(what); data/rsstail-1.8/r2t.c:20:35: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). memcpy(str + 1, str + what_len, strlen(str + what_len) + 1); data/rsstail-1.8/r2t.c:40: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(lt, gt + 1, strlen(gt + 1) + 1); data/rsstail-1.8/r2t.c:210: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). dummy = optarg[strlen(optarg) - 1]; data/rsstail-1.8/r2t.c:480: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). if (bytes_limit != 0 && bytes_limit < strlen(stripped)) data/rsstail-1.8/r2t.c:489: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). if (bytes_limit != 0 && bytes_limit < strlen(item_cur -> description)) data/rsstail-1.8/r2t.c:504: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). if (bytes_limit != 0 && bytes_limit < strlen(item_cur -> comments)) ANALYSIS SUMMARY: Hits = 14 Lines analyzed = 548 in approximately 0.04 seconds (13352 lines/second) Physical Source Lines of Code (SLOC) = 455 Hits@level = [0] 56 [1] 7 [2] 6 [3] 1 [4] 0 [5] 0 Hits@level+ = [0+] 70 [1+] 14 [2+] 7 [3+] 1 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 153.846 [1+] 30.7692 [2+] 15.3846 [3+] 2.1978 [4+] 0 [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.