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/geary-3.38.0.1/src/client/components/components-reflow-box.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/extension.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3Int.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3_tokenizer.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3_unicode2.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3_unicodesn.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3_unicodesn.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/examples/stemwords.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/include/libstemmer.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/libstemmer/libstemmer.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/libstemmer/libstemmer_utf8.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/libstemmer/modules.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/libstemmer/modules_utf8.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/runtime/api.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/runtime/api_sq3.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/runtime/header.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/runtime/utilities_sq3.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_danish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_danish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_dutch.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_dutch.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_english.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_english.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_finnish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_finnish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_french.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_french.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_german.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_german.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_hungarian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_italian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_italian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_norwegian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_norwegian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_porter.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_porter.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_portuguese.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_portuguese.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_spanish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_spanish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_swedish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_1_swedish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_2_romanian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_ISO_8859_2_romanian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_KOI8_R_russian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_KOI8_R_russian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_danish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_danish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_dutch.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_dutch.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_english.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_english.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_finnish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_finnish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_french.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_french.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_german.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_german.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_hungarian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_hungarian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_italian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_italian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_norwegian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_norwegian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_porter.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_porter.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_portuguese.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_portuguese.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_romanian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_romanian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_russian.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_russian.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_spanish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_spanish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_swedish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_swedish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_turkish.c
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/src_c/stem_UTF_8_turkish.h
Examining data/geary-3.38.0.1/src/sqlite3-unicodesn/static.c

FINAL RESULTS:

data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/examples/stemwords.c:179:32:  [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).
    f_in = (in == 0) ? stdin : fopen(in, "r");
data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/examples/stemwords.c:184:35:  [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).
    f_out = (out == 0) ? stdout : fopen(out, "w");
data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3_unicodesn.c:392:13:  [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 n = strlen(z);
data/geary-3.38.0.1/src/sqlite3-unicodesn/fts3_unicodesn.c:448: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).
    pCsr->nInput = (int)strlen(aInput);
data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/examples/stemwords.c:23:18:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        int ch = getc(f_in);
data/geary-3.38.0.1/src/sqlite3-unicodesn/libstemmer_c/examples/stemwords.c:47:22:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                ch = getc(f_in);

ANALYSIS SUMMARY:

Hits = 6
Lines analyzed = 30114 in approximately 2.00 seconds (15073 lines/second)
Physical Source Lines of Code (SLOC) = 27739
Hits@level = [0]  21 [1]   4 [2]   2 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  27 [1+]   6 [2+]   2 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.973359 [1+] 0.216302 [2+] 0.0721007 [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.