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/adv-17v35x-5.0.3.0/precomp.h Examining data/adv-17v35x-5.0.3.0/adv17v35x.c FINAL RESULTS: data/adv-17v35x-5.0.3.0/adv17v35x.c:701: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 ch[256], lsr = *status; data/adv-17v35x-5.0.3.0/adv17v35x.c:2113: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 adv_dev_name[MAX_CARD_SUPPORT][MAX_STRING_LEN]; data/adv-17v35x-5.0.3.0/adv17v35x.c:2114: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 adv_driver_name[MAX_CARD_SUPPORT][MAX_STRING_LEN]; data/adv-17v35x-5.0.3.0/adv17v35x.c:2190: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 tmp_string[MAX_STRING_LEN], tmp_dev_name[MAX_STRING_LEN]; data/adv-17v35x-5.0.3.0/adv17v35x.c:2283: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(tmp_string, "%02d", uart->board_id); data/adv-17v35x-5.0.3.0/adv17v35x.c:2328: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(adv_driver_name[i], "ADVserialBID"); data/adv-17v35x-5.0.3.0/adv17v35x.c:2261:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(adv_dev_name[0], "ttyAP", sizeof(adv_dev_name[0]) - 1); data/adv-17v35x-5.0.3.0/adv17v35x.c:2282:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). Risk is low because the source is a constant string. strncpy(tmp_dev_name, "ttyB", sizeof(tmp_dev_name) - 1); data/adv-17v35x-5.0.3.0/adv17v35x.c:2284:4: [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. strncat(tmp_dev_name, tmp_string, data/adv-17v35x-5.0.3.0/adv17v35x.c:2285: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). sizeof(tmp_dev_name) - strlen(tmp_dev_name)); data/adv-17v35x-5.0.3.0/adv17v35x.c:2286:4: [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. Risk is low because the source is a constant character. strncat(tmp_dev_name, "P", data/adv-17v35x-5.0.3.0/adv17v35x.c:2287: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). sizeof(tmp_dev_name) - strlen(tmp_dev_name)); data/adv-17v35x-5.0.3.0/adv17v35x.c:2298: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). && strlen(adv_uart_driver[i].dev_name) > 0 data/adv-17v35x-5.0.3.0/adv17v35x.c:2299: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). && strlen(tmp_dev_name) > 0) data/adv-17v35x-5.0.3.0/adv17v35x.c:2324:6: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(adv_dev_name[i], tmp_dev_name, sizeof(tmp_dev_name)); data/adv-17v35x-5.0.3.0/adv17v35x.c:2329:6: [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. strncat(adv_driver_name[i], tmp_string, data/adv-17v35x-5.0.3.0/adv17v35x.c:2330: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). sizeof(adv_driver_name[i]) - strlen(adv_driver_name[i])); ANALYSIS SUMMARY: Hits = 17 Lines analyzed = 2774 in approximately 0.06 seconds (45031 lines/second) Physical Source Lines of Code (SLOC) = 1973 Hits@level = [0] 0 [1] 11 [2] 6 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 17 [1+] 17 [2+] 6 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 8.61632 [1+] 8.61632 [2+] 3.04105 [3+] 0 [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.