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/zziplib-0.13.62/zzipwrap/zzipwrap.c
Examining data/zziplib-0.13.62/zzipwrap/wrap.c
Examining data/zziplib-0.13.62/zzipwrap/wrap.h
Examining data/zziplib-0.13.62/SDL/SDL_rwops_zzip.c
Examining data/zziplib-0.13.62/SDL/SDL_rwops_zzcat.c
Examining data/zziplib-0.13.62/SDL/SDL_rwops_zzip.h
Examining data/zziplib-0.13.62/bins/unzzipcat-mem.c
Examining data/zziplib-0.13.62/bins/zzdir.c
Examining data/zziplib-0.13.62/bins/zzobfuscated.c
Examining data/zziplib-0.13.62/bins/zzxorcat.c
Examining data/zziplib-0.13.62/bins/unzzipcat-seeko.c
Examining data/zziplib-0.13.62/bins/unzzipdir-mem.c
Examining data/zziplib-0.13.62/bins/zziptest.c
Examining data/zziplib-0.13.62/bins/unzzipdir.c
Examining data/zziplib-0.13.62/bins/unzip-mem.c
Examining data/zziplib-0.13.62/bins/zzxordir.c
Examining data/zziplib-0.13.62/bins/zzxorcopy.c
Examining data/zziplib-0.13.62/bins/zzcat.c
Examining data/zziplib-0.13.62/bins/zzip.c
Examining data/zziplib-0.13.62/bins/unzzip.c
Examining data/zziplib-0.13.62/bins/unzzipcat.c
Examining data/zziplib-0.13.62/zzip/plugin.c
Examining data/zziplib-0.13.62/zzip/conf.h
Examining data/zziplib-0.13.62/zzip/dir.c
Examining data/zziplib-0.13.62/zzip/__hints.h
Examining data/zziplib-0.13.62/zzip/__fnmatch.h
Examining data/zziplib-0.13.62/zzip/stat.c
Examining data/zziplib-0.13.62/zzip/info.c
Examining data/zziplib-0.13.62/zzip/err.c
Examining data/zziplib-0.13.62/zzip/file.h
Examining data/zziplib-0.13.62/zzip/info.h
Examining data/zziplib-0.13.62/zzip/write.h
Examining data/zziplib-0.13.62/zzip/autoconf.h
Examining data/zziplib-0.13.62/zzip/mmapped.h
Examining data/zziplib-0.13.62/zzip/__dirent.h
Examining data/zziplib-0.13.62/zzip/types.h
Examining data/zziplib-0.13.62/zzip/fseeko.h
Examining data/zziplib-0.13.62/zzip/stdint.h
Examining data/zziplib-0.13.62/zzip/zzip.h
Examining data/zziplib-0.13.62/zzip/fetch.h
Examining data/zziplib-0.13.62/zzip/file.c
Examining data/zziplib-0.13.62/zzip/plugin.h
Examining data/zziplib-0.13.62/zzip/_config.h
Examining data/zziplib-0.13.62/zzip/_msvc.h
Examining data/zziplib-0.13.62/zzip/__debug.h
Examining data/zziplib-0.13.62/zzip/write.c
Examining data/zziplib-0.13.62/zzip/fetch.c
Examining data/zziplib-0.13.62/zzip/__mmap.h
Examining data/zziplib-0.13.62/zzip/format.h
Examining data/zziplib-0.13.62/zzip/lib.h
Examining data/zziplib-0.13.62/zzip/zzip32.h
Examining data/zziplib-0.13.62/zzip/memdisk.h
Examining data/zziplib-0.13.62/zzip/fseeko.c
Examining data/zziplib-0.13.62/zzip/memdisk.c
Examining data/zziplib-0.13.62/zzip/mmapped.c
Examining data/zziplib-0.13.62/zzip/zip.c
Examining data/zziplib-0.13.62/test/zzipself.c
Examining data/zziplib-0.13.62/test/zzipsetstub.c

FINAL RESULTS:

data/zziplib-0.13.62/SDL/SDL_rwops_zzcat.c:24:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzip-mem.c:324:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (usage);
data/zziplib-0.13.62/bins/unzip-mem.c:329:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/unzip-mem.c:361:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (usage);
data/zziplib-0.13.62/bins/unzzip.c:38:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzzip.c:43:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/unzzipcat-mem.c:73:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzzipcat-mem.c:78:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/unzzipcat-seeko.c:62:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzzipcat-seeko.c:67:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/unzzipcat.c:73:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzzipcat.c:78:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/unzzipdir-mem.c:44:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzzipdir-mem.c:49:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/unzzipdir.c:44:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/unzzipdir.c:49:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzcat.c:30:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzcat.c:35:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzdir.c:31:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzdir.c:36:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzip.c:41:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzip.c:46:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zziptest.c:56:6:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	    printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzobfuscated.c:71:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzobfuscated.c:76:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzobfuscated.c:117:13:  [4] (buffer) sprintf:
  Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or
  vsnprintf.
            sprintf(name, "obfuscated/%s", argv[argn]);
data/zziplib-0.13.62/bins/zzxorcat.c:58:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzxorcat.c:63:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzxorcopy.c:56:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzxorcopy.c:61:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/bins/zzxorcopy.c:78:6:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	    printf (usage);
data/zziplib-0.13.62/bins/zzxordir.c:62:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/bins/zzxordir.c:67:2:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
	printf (__FILE__" version "ZZIP_PACKAGE" "ZZIP_VERSION"\n");
data/zziplib-0.13.62/test/zzipself.c:31:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/test/zzipsetstub.c:18:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/zzip/__dirent.h:179: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 (nd->dd_name, szPath);
data/zziplib-0.13.62/zzip/__dirent.h:185:2:  [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 (nd->dd_name, win32_SLASH);
data/zziplib-0.13.62/zzip/__dirent.h:189: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 (nd->dd_name, win32_SUFFIX);
data/zziplib-0.13.62/zzip/dir.c:83: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(filename, dir->realname);
data/zziplib-0.13.62/zzip/dir.c:85: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(filename, dirent->d_name);
data/zziplib-0.13.62/zzip/zip.c:810:9:  [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(file + len, *ext);
data/zziplib-0.13.62/zzipwrap/zzipwrap.c:48:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf (usage);
data/zziplib-0.13.62/SDL/SDL_rwops_zzcat.c:38:13:  [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[17];
data/zziplib-0.13.62/bins/unzip-mem.c:92: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/unzip-mem.c:103:18:  [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).
    FILE* file = fopen (entry->zz_name, "w");
data/zziplib-0.13.62/bins/unzip-mem.c:126: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 buffer[1024]; int len; 
data/zziplib-0.13.62/bins/unzip-mem.c:162: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 _zzip_time_[30];
data/zziplib-0.13.62/bins/unzip-mem.c:166: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 (_zzip_time_, "%02i-%02i-%02i %02i:%02i",
data/zziplib-0.13.62/bins/unzzip.c:87: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[17]; zzip_ssize_t n;
data/zziplib-0.13.62/bins/unzzipcat-mem.c: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/unzzipcat-mem.c:55: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/unzzipcat-seeko.c:33: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/unzzipcat-seeko.c:46: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/unzzipcat-seeko.c:71:12:  [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).
    disk = fopen (argv[1], "r");
data/zziplib-0.13.62/bins/unzzipcat.c: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/unzzipcat.c:55: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 buffer[1024]; int len;
data/zziplib-0.13.62/bins/zzcat.c:48:13:  [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[17];
data/zziplib-0.13.62/bins/zzip.c:63:14:  [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).
	int input = open (argv[argn], O_RDONLY);
data/zziplib-0.13.62/bins/zzip.c:71:6:  [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[17]; zzip_ssize_t n;
data/zziplib-0.13.62/bins/zziptest.c:65:17:  [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).
    { 	int fd = open (name, O_RDONLY|O_BINARY);
data/zziplib-0.13.62/bins/zziptest.c:121:9:  [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[17];
data/zziplib-0.13.62/bins/zzobfuscated.c:90:16:  [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).
        fin  = fopen(argv[1], "rb");
data/zziplib-0.13.62/bins/zzobfuscated.c:95:16:  [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).
        fout = fopen((argc == 2) ? "obfuscated" : "obfuscated.dat", "wb");
data/zziplib-0.13.62/bins/zzobfuscated.c:115:9:  [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 name[256];
data/zziplib-0.13.62/bins/zzobfuscated.c:119:13:  [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(name, "obfuscated");
data/zziplib-0.13.62/bins/zzobfuscated.c:129:13:  [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[17];
data/zziplib-0.13.62/bins/zzxorcat.c:75:46:  [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).
	    if (isdigit(argv[argn][1]))	xor_value = atoi (argv[argn]+1);
data/zziplib-0.13.62/bins/zzxorcat.c:87:13:  [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[17];
data/zziplib-0.13.62/bins/zzxorcopy.c:72:46:  [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).
	    if (isdigit(argv[argn][1]))	xor_value = atoi (argv[argn]+1);
data/zziplib-0.13.62/bins/zzxorcopy.c:82: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).
        iF = fopen (argv[argn], "rb");
data/zziplib-0.13.62/bins/zzxorcopy.c:85: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).
        oF = fopen (argv[argn], "wb");
data/zziplib-0.13.62/bins/zzxorcopy.c:89:13:  [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[17];
data/zziplib-0.13.62/bins/zzxordir.c:80:46:  [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).
	    if (isdigit(argv[argn][1]))	xor_value = atoi (argv[argn]+1);
data/zziplib-0.13.62/test/zzipself.c:55:13:  [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[17];
data/zziplib-0.13.62/test/zzipsetstub.c:23: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[17]; int n;
data/zziplib-0.13.62/test/zzipsetstub.c:35:12:  [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).
	zipFILE = fopen (zipfile, "r+b");
data/zziplib-0.13.62/test/zzipsetstub.c:38:12:  [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).
	sfxFILE = fopen (sfxfile, "rb");
data/zziplib-0.13.62/zzip/__dirent.h:101: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			dd_name[1];
data/zziplib-0.13.62/zzip/dir.c:76: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[PATH_MAX];
data/zziplib-0.13.62/zzip/file.c:774:26:  [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).
        int fd = (os->fd.open)(filename, o_flags);        /* io->fd.open */
data/zziplib-0.13.62/zzip/file.c:806:9:  [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 basename[PATH_MAX];
data/zziplib-0.13.62/zzip/file.c:812:9:  [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(basename, filename, filename_len + 1);
data/zziplib-0.13.62/zzip/fseeko.c:156:9:  [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(name, entry->tail, len);
data/zziplib-0.13.62/zzip/fseeko.c:511:14:  [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 buffer[PAGESIZE];     /* work buffer for inflate algorithm */
data/zziplib-0.13.62/zzip/fseeko.c:536:9:  [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(found, entry, sizeof(*entry));   /* prescan_copy */
data/zziplib-0.13.62/zzip/fseeko.c:540:9:  [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(found->tail, entry->tail, entry->tailalloc);
data/zziplib-0.13.62/zzip/lib.h:42: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        d_name[1];      /* the actual name of the entry, may contain DIRSEPs */
data/zziplib-0.13.62/zzip/memdisk.c:213:13:  [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(mem, ptr1, ext1);
data/zziplib-0.13.62/zzip/memdisk.c:214:15:  [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 *) (mem))[ext1 + 0] = 0;
data/zziplib-0.13.62/zzip/memdisk.c:215:15:  [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 *) (mem))[ext1 + 1] = 0;
data/zziplib-0.13.62/zzip/memdisk.c:222:13:  [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(mem, ptr2, ext2);
data/zziplib-0.13.62/zzip/memdisk.c:223:15:  [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 *) (mem))[ext2 + 0] = 0;
data/zziplib-0.13.62/zzip/memdisk.c:224:15:  [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 *) (mem))[ext2 + 1] = 0;
data/zziplib-0.13.62/zzip/mmapped.c:149:18:  [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).
    ___ int fd = open(filename, O_RDONLY | O_BINARY);
data/zziplib-0.13.62/zzip/mmapped.c:622:9:  [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(ptr, file->stored, size);
data/zziplib-0.13.62/zzip/plugin.c:47:6:  [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).
    &open,
data/zziplib-0.13.62/zzip/plugin.c:81:5:  [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(io, &default_io, sizeof(default_io));
data/zziplib-0.13.62/zzip/plugin.h:45:20:  [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).
    int          (*open)(zzip_char_t* name, int flags, ...);
data/zziplib-0.13.62/zzip/write.c:156:9:  [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(dir->realname, name, name_len + 1);
data/zziplib-0.13.62/zzip/write.c:176:13:  [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(dir->realname + name_len, exx, exx_len);     /* append! */
data/zziplib-0.13.62/zzip/write.c:179:22:  [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).
        fd = (io->fd.open)(dir->realname, O_CREAT | O_TRUNC | O_WRONLY, o_mode);
data/zziplib-0.13.62/zzip/zip.c:193: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.
    auto char buffer[2 * ZZIP_BUFSIZ];
data/zziplib-0.13.62/zzip/zip.c:308:25:  [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(trailer, tail, sizeof(*trailer));
data/zziplib-0.13.62/zzip/zip.c:311:25:  [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(trailer, tail, sizeof(*trailer) - 2);
data/zziplib-0.13.62/zzip/zip.c:542:16:  [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(hdr->d_name, fd_map+zz_fd_gap + zz_offset+sizeof(*d), u_namlen); }
data/zziplib-0.13.62/zzip/zip.c:795: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.
    auto char file[PATH_MAX];
data/zziplib-0.13.62/zzip/zip.c:801:5:  [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(file, filename, len + 1);
data/zziplib-0.13.62/zzip/zip.c:811:22:  [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).
        fd = (io->fd.open)(file, filemode);
data/zziplib-0.13.62/zzip/zip.c:846:18:  [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).
    fd = (io->fd.open)(filename, O_RDONLY | O_BINARY);
data/zziplib-0.13.62/zzipwrap/wrap.c:108:4:  [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 (&buf[bytes_written], &zzip_memory_buffer[transfer_start],transfer_bytes);
data/zziplib-0.13.62/zzipwrap/wrap.c:132:5:  [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).
 fd=open(pathname, flags);
data/zziplib-0.13.62/bins/unzip-mem.c:119: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).
    if (strlen (entry->zz_name) < 24) {
data/zziplib-0.13.62/bins/unzip-mem.c:120:29:  [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).
	printf ("%.*s", 24 - (int) strlen (entry->zz_name),
data/zziplib-0.13.62/bins/zzip.c:81:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	    while ((n = read (input, buf, 16)))
data/zziplib-0.13.62/bins/zzobfuscated.c:41:32:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    const zzip_ssize_t bytes = read(fd, buf, len);
data/zziplib-0.13.62/bins/zzobfuscated.c:80: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).
    if (strlen(argv[1]) > 128) {
data/zziplib-0.13.62/bins/zzobfuscated.c:100:22:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        while ((ch = fgetc(fin)) != EOF) {
data/zziplib-0.13.62/bins/zzxorcat.c:42:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    zzip_ssize_t r = read(f, p, l);
data/zziplib-0.13.62/bins/zzxordir.c:45:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    zzip_ssize_t r = read(f, p, l);
data/zziplib-0.13.62/zzip/__dirent.h:169: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).
    nd = (DIR *) calloc (1, sizeof (DIR) + strlen (szPath) 
data/zziplib-0.13.62/zzip/__dirent.h:170:7:  [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 (win32_SLASH) + strlen (win32_SUFFIX));
data/zziplib-0.13.62/zzip/__dirent.h:170: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).
			 + strlen (win32_SLASH) + strlen (win32_SUFFIX));
data/zziplib-0.13.62/zzip/__dirent.h:183:14:  [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).
	nd->dd_name[strlen (nd->dd_name) - 1] != '/' &&
data/zziplib-0.13.62/zzip/__dirent.h:184:14:  [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).
	nd->dd_name[strlen (nd->dd_name) - 1] != '\\') {
data/zziplib-0.13.62/zzip/__dirent.h:263:43:  [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).
	dirp->dd_dir.d_namlen = (unsigned short) strlen (dirp->dd_dir.d_name);
data/zziplib-0.13.62/zzip/conf.h:197:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
#  define _zzip_read  read
data/zziplib-0.13.62/zzip/dir.c:84:5:  [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(filename, "/");
data/zziplib-0.13.62/zzip/file.c:276:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                dataoff = dir->io->fd.read(dir->fd, (void *) p, sizeof(*p));
data/zziplib-0.13.62/zzip/file.c:427:45:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                zzip_ssize_t i = fp->io->fd.read(dir->fd, fp->buf32k, cl);
data/zziplib-0.13.62/zzip/file.c:455:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        rv = fp->io->fd.read(dir->fd, buf, l);
data/zziplib-0.13.62/zzip/file.c:481:29:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        { return fp->io->fd.read(fp->fd, buf, len); }    /* stat fd */
data/zziplib-0.13.62/zzip/file.c:808:28:  [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 filename_len = strlen(filename);
data/zziplib-0.13.62/zzip/file.c:817:31:  [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).
            zzip_size_t len = strlen(stream->dir->realname);
data/zziplib-0.13.62/zzip/mmapped.c:158:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    if ((st.st_size == read(fd, buffer, st.st_size)) &&
data/zziplib-0.13.62/zzip/mmapped.c:231:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    strncpy(r, p, maxlen);
data/zziplib-0.13.62/zzip/plugin.h:47:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    zzip_ssize_t (*read)(int fd, void* buf, zzip_size_t len);
data/zziplib-0.13.62/zzip/write.c:151: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).
        int name_len = strlen(name);
data/zziplib-0.13.62/zzip/write.c:167:28:  [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 ((exx_len = strlen(*exx) + 1) <= name_len &&
data/zziplib-0.13.62/zzip/write.c:174: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).
            if (! (exx_len = strlen(*exx)) || exx_len >= MAX_EXT_LEN)
data/zziplib-0.13.62/zzip/zip.c:287:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (io->fd.read(fd, buf, (zzip_size_t) maplen) < maplen)
data/zziplib-0.13.62/zzip/zip.c:484:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (io->fd.read(fd, &dirent, sizeof(dirent)) < __sizeof(dirent))
data/zziplib-0.13.62/zzip/zip.c:544:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            { io->fd.read(fd, hdr->d_name, u_namlen); }
data/zziplib-0.13.62/zzip/zip.c:797: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).
    zzip_size_t len = strlen(filename);
data/zziplib-0.13.62/zzipwrap/wrap.c:86:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
   bytes_read=read(fd,zzip_memory_buffer,zzip_memory_blocksize);

ANALYSIS SUMMARY:

Hits = 144
Lines analyzed = 11571 in approximately 0.39 seconds (29527 lines/second)
Physical Source Lines of Code (SLOC) = 7698
Hits@level = [0] 101 [1]  33 [2]  69 [3]   0 [4]  42 [5]   0
Hits@level+ = [0+] 245 [1+] 144 [2+] 111 [3+]  42 [4+]  42 [5+]   0
Hits/KSLOC@level+ = [0+] 31.8264 [1+] 18.7062 [2+] 14.4193 [3+] 5.45596 [4+] 5.45596 [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.