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/gcab-1.4/libgcab/cabinet.h
Examining data/gcab-1.4/libgcab/decomp.c
Examining data/gcab-1.4/libgcab/decomp.h
Examining data/gcab-1.4/libgcab/gcab-cabinet.c
Examining data/gcab-1.4/libgcab/gcab-cabinet.h
Examining data/gcab-1.4/libgcab/gcab-file.c
Examining data/gcab-1.4/libgcab/gcab-file.h
Examining data/gcab-1.4/libgcab/gcab-folder.c
Examining data/gcab-1.4/libgcab/gcab-folder.h
Examining data/gcab-1.4/libgcab/gcab-priv.h
Examining data/gcab-1.4/libgcab/libgcab.h
Examining data/gcab-1.4/libgcab/cabinet.c
Examining data/gcab-1.4/src/gcab-bzero.c
Examining data/gcab-1.4/src/gcab-fuzz.c
Examining data/gcab-1.4/src/gcab.c
Examining data/gcab-1.4/tests/gcab-self-test.c

FINAL RESULTS:

data/gcab-1.4/libgcab/cabinet.c:48: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 (cd->in, data, size);
data/gcab-1.4/libgcab/cabinet.c:479: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 (&sizecsum[0], &nbytes_le, 2);
data/gcab-1.4/libgcab/cabinet.c:481: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 (&sizecsum[2], &nbytes_le, 2);
data/gcab-1.4/libgcab/cabinet.c:582: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 (&sizecsum[0], &nbytes_le, 2);
data/gcab-1.4/libgcab/cabinet.c:584: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 (&sizecsum[2], &nbytes_le, 2);
data/gcab-1.4/libgcab/decomp.c:812: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(CAB(extra_bits), bits, sizeof(bits));
data/gcab-1.4/libgcab/decomp.c:813: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(CAB(lzx_position_base), base, sizeof(base));
data/gcab-1.4/libgcab/decomp.c:1114: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(window + window_posn, inpos, (size_t) this_run);
data/gcab-1.4/libgcab/decomp.c:1126: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(CAB(outbuf), window + ((!window_posn) ? window_size : window_posn) -
data/gcab-1.4/libgcab/gcab-cabinet.c:298:19:  [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).
        sumstr += strlen (gcab_file_get_name (cabfile)) + 1;
data/gcab-1.4/libgcab/gcab-file.c:92: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).
        int i, len = strlen (fname);
data/gcab-1.4/tests/gcab-self-test.c:275:59:  [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 (files[i].contents));

ANALYSIS SUMMARY:

Hits = 12
Lines analyzed = 5466 in approximately 0.15 seconds (36872 lines/second)
Physical Source Lines of Code (SLOC) = 3740
Hits@level = [0]   0 [1]   3 [2]   9 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  12 [1+]  12 [2+]   9 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 3.20856 [1+] 3.20856 [2+] 2.40642 [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.