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/ninka-1.3.2/comments/dformat.cpp Examining data/ninka-1.3.2/comments/dformat.h Examining data/ninka-1.3.2/comments/func.cpp Examining data/ninka-1.3.2/comments/func.h Examining data/ninka-1.3.2/comments/io.cpp Examining data/ninka-1.3.2/comments/io.h Examining data/ninka-1.3.2/comments/main.h Examining data/ninka-1.3.2/comments/main.cpp FINAL RESULTS: data/ninka-1.3.2/comments/dformat.cpp:91:5: [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(temp,argv[current_arg]); data/ninka-1.3.2/comments/dformat.cpp:92:5: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(temp,DEFAULT_MANGLED_POSTFIX); data/ninka-1.3.2/comments/dformat.cpp:93:5: [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(temp2,argv[current_arg]); data/ninka-1.3.2/comments/dformat.cpp:94:5: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat(temp2,DEFAULT_COMMENTS_POSTFIX); data/ninka-1.3.2/comments/io.cpp:111: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(i_name,in); data/ninka-1.3.2/comments/io.cpp:116:5: [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(c_name,comments); data/ninka-1.3.2/comments/io.cpp:117:5: [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(o_name,out); data/ninka-1.3.2/comments/dformat.cpp:53: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 temp[FILE_NAME_LENGTH]={"\0"}; data/ninka-1.3.2/comments/dformat.cpp:54: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 temp2[FILE_NAME_LENGTH]={"\0"}; data/ninka-1.3.2/comments/dformat.cpp:220: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. char temp[256]; data/ninka-1.3.2/comments/dformat.cpp:235:29: [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). io.regionsCount = atoi(temp); data/ninka-1.3.2/comments/io.cpp:77:7: [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). i.open(in/*, ios::nocreate*/); data/ninka-1.3.2/comments/io.cpp:92:7: [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). o.open(out); data/ninka-1.3.2/comments/io.cpp:99:8: [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). co.open(comments); data/ninka-1.3.2/comments/io.h:36: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 i_name[FILE_NAME_LENGTH], o_name[FILE_NAME_LENGTH],c_name[FILE_NAME_LENGTH]; data/ninka-1.3.2/comments/io.h:37: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 buf[BUF_LENGTH], last_written[LAST_WRITTEN_LENGTH], data/ninka-1.3.2/comments/dformat.cpp:182: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(str)==0) data/ninka-1.3.2/comments/dformat.cpp:185: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). for(unsigned int x=1; x<strlen(str); x++) data/ninka-1.3.2/comments/dformat.cpp:221: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). while ((x+i < strlen(str)) && data/ninka-1.3.2/comments/func.cpp:69: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). for(x=0; x<((signed)strlen(str)-DEFINE_SEARCH_PRECISION); x++) data/ninka-1.3.2/comments/func.cpp:73: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). if(!strncasecmp((str+x),preprocessors[y],((strlen(str)-x)>strlen(preprocessors[y]) ? strlen(preprocessors[y]) : (strlen(str)-x)))) data/ninka-1.3.2/comments/func.cpp:73:65: [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(!strncasecmp((str+x),preprocessors[y],((strlen(str)-x)>strlen(preprocessors[y]) ? strlen(preprocessors[y]) : (strlen(str)-x)))) data/ninka-1.3.2/comments/func.cpp:73:92: [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(!strncasecmp((str+x),preprocessors[y],((strlen(str)-x)>strlen(preprocessors[y]) ? strlen(preprocessors[y]) : (strlen(str)-x)))) data/ninka-1.3.2/comments/func.cpp:73:120: [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(!strncasecmp((str+x),preprocessors[y],((strlen(str)-x)>strlen(preprocessors[y]) ? strlen(preprocessors[y]) : (strlen(str)-x)))) data/ninka-1.3.2/comments/func.cpp:96: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). for(x=0; x<(signed)strlen(string); x++) data/ninka-1.3.2/comments/io.cpp:113:5: [1] (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 character. strcpy(o_name,""); data/ninka-1.3.2/comments/io.cpp:114:5: [1] (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 character. strcpy(c_name,""); ANALYSIS SUMMARY: Hits = 27 Lines analyzed = 1260 in approximately 0.09 seconds (14597 lines/second) Physical Source Lines of Code (SLOC) = 936 Hits@level = [0] 0 [1] 11 [2] 9 [3] 0 [4] 7 [5] 0 Hits@level+ = [0+] 27 [1+] 27 [2+] 16 [3+] 7 [4+] 7 [5+] 0 Hits/KSLOC@level+ = [0+] 28.8462 [1+] 28.8462 [2+] 17.094 [3+] 7.47863 [4+] 7.47863 [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.