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/r-cran-phangorn-2.5.5/src/fitch.c
Examining data/r-cran-phangorn-2.5.5/src/phangorn_help.cpp
Examining data/r-cran-phangorn-2.5.5/src/sprdist.c
Examining data/r-cran-phangorn-2.5.5/src/sankoff.c
Examining data/r-cran-phangorn-2.5.5/src/ml.c
Examining data/r-cran-phangorn-2.5.5/src/init.c
Examining data/r-cran-phangorn-2.5.5/src/RcppExports.cpp
Examining data/r-cran-phangorn-2.5.5/src/phangorn.c
Examining data/r-cran-phangorn-2.5.5/src/dist.c

FINAL RESULTS:

data/r-cran-phangorn-2.5.5/src/sprdist.c:251:10:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  while (mismatch) {
data/r-cran-phangorn-2.5.5/src/sprdist.c:261:10:  [1] (buffer) mismatch:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
    if (!mismatch) return split->spr;
data/r-cran-phangorn-2.5.5/src/sprdist.c:937:39:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  for (i=0; (i < b1->n->ints - 1) && (equal); i++) if (b1->bs[i] != b2->bs[i]) equal = false;
data/r-cran-phangorn-2.5.5/src/sprdist.c:938:8:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  if ((equal) && ((b1->bs[i] & b1->n->mask) != (b2->bs[i] & b2->n->mask))) equal = false;
data/r-cran-phangorn-2.5.5/src/sprdist.c:939:7:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  if (equal) return true; /* the biparitions are already the same, without flipping the bits */

ANALYSIS SUMMARY:

Hits = 5
Lines analyzed = 3961 in approximately 0.14 seconds (27327 lines/second)
Physical Source Lines of Code (SLOC) = 3127
Hits@level = [0]   0 [1]   5 [2]   0 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]   5 [1+]   5 [2+]   0 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 1.59898 [1+] 1.59898 [2+]   0 [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.