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/doublecmd-0.9.9/sdk/wlxplugin.h Examining data/doublecmd-0.9.9/sdk/wfxplugin.h Examining data/doublecmd-0.9.9/sdk/wdxplugin.h Examining data/doublecmd-0.9.9/sdk/wcxplugin.h Examining data/doublecmd-0.9.9/sdk/extension.h Examining data/doublecmd-0.9.9/sdk/common.h Examining data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/randtable.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/huffman.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/error.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/decompress.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/crctable.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/compress.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h Examining data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.h Examining data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c Examining data/doublecmd-0.9.9/libraries/src/libbz2/blocksort.c FINAL RESULTS: data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c:1417:4: [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(mode2, writing ? "w" : "r" ); data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:65:7: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf ( stderr, \ data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:74:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr,zf) data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:76:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr,zf,za1) data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:78:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr,zf,za1,za2) data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:80:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr,zf,za1,za2,za3) data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:82:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr,zf,za1,za2,za3,za4) data/doublecmd-0.9.9/libraries/src/libbz2/bzlib_private.h:84:4: [4] (format) fprintf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. fprintf(stderr,zf,za1,za2,za3,za4,za5) data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1451:6: [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(FindData->cFileName, cAddConnection); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1457:6: [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(FindData->cFileName, cQuickConnection); data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c:1390:4: [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 unused[BZ_MAX_UNUSED]; data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c:1393:4: [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 mode2[10] = ""; data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c:1425:14: [2] (misc) fopen: 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). fp = fopen(path,mode2); data/doublecmd-0.9.9/libraries/src/libbz2/error.c:6:4: [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 error[2048]; data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:188: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 username[MAX_PATH]; data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:189: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 password[MAX_PATH]; data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:191: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 domain[MAX_PATH]; data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1109:9: [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(key, "Connection%dName", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1111:9: [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(key, "Connection%dType", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1113:9: [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(key, "Connection%dHost", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1115:9: [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(key, "Connection%dUserName", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1117:9: [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(key, "Connection%dPassword", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1119:9: [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(key, "Connection%dPath", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1146:7: [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(key, "Connection%dName", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1152:7: [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(key, "Connection%dType", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1157:7: [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(key, "Connection%dHost", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1162:7: [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(key, "Connection%dUserName", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1167:7: [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(key, "Connection%dPassword", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1172:7: [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(key, "Connection%dPath", i); data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1281: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 host[MAX_PATH], home_dir[MAX_PATH], user[MAX_PATH], pwd[MAX_PATH]; data/doublecmd-0.9.9/sdk/extension.h:108:1: [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 PluginDir[EXT_MAX_PATH]; data/doublecmd-0.9.9/sdk/extension.h:109:1: [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 PluginConfDir[EXT_MAX_PATH]; data/doublecmd-0.9.9/sdk/extension.h:116:10: [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 Reserved[4096 * sizeof(void *)]; data/doublecmd-0.9.9/sdk/wcxplugin.h:78: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 ArcName[260]; data/doublecmd-0.9.9/sdk/wcxplugin.h:79: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 FileName[260]; data/doublecmd-0.9.9/sdk/wcxplugin.h:96: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 ArcName[1024]; data/doublecmd-0.9.9/sdk/wcxplugin.h:97: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 FileName[1024]; data/doublecmd-0.9.9/sdk/wcxplugin.h:113: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 Reserved[1024]; data/doublecmd-0.9.9/sdk/wcxplugin.h:134: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 Reserved[1024]; data/doublecmd-0.9.9/sdk/wcxplugin.h:161: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 DefaultIniName[MAX_PATH]; data/doublecmd-0.9.9/sdk/wdxplugin.h:70: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 DefaultIniName[MAX_PATH]; data/doublecmd-0.9.9/sdk/wfxplugin.h:184: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 DefaultIniName[MAX_PATH]; data/doublecmd-0.9.9/sdk/wfxplugin.h:310: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 DefaultIniName[MAX_PATH]; data/doublecmd-0.9.9/sdk/wlxplugin.h:42: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 DefaultIniName[MAX_PATH]; data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c:908:14: [1] (buffer) fgetc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). Int32 c = fgetc ( f ); data/doublecmd-0.9.9/libraries/src/libbz2/bzlib.c:1418:4: [1] (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). Risk is low because the source is a constant character. strcat(mode2,"b"); /* binary mode */ data/doublecmd-0.9.9/plugins/wfx/gvfs/src/gvfs.c:1349: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). for(i = 0; i < strlen(name); i++) ANALYSIS SUMMARY: Hits = 47 Lines analyzed = 8143 in approximately 0.93 seconds (8714 lines/second) Physical Source Lines of Code (SLOC) = 5998 Hits@level = [0] 8 [1] 3 [2] 34 [3] 0 [4] 10 [5] 0 Hits@level+ = [0+] 55 [1+] 47 [2+] 44 [3+] 10 [4+] 10 [5+] 0 Hits/KSLOC@level+ = [0+] 9.16972 [1+] 7.83595 [2+] 7.33578 [3+] 1.66722 [4+] 1.66722 [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.