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/rust-ring-0.16.9/crypto/constant_time_test.c
Examining data/rust-ring-0.16.9/crypto/cpu-intel.c
Examining data/rust-ring-0.16.9/crypto/crypto.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/bn/generic.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/bn/internal.h
Examining data/rust-ring-0.16.9/crypto/fipsmodule/bn/montgomery.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/bn/montgomery_inv.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/ecp_nistz.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/ecp_nistz.h
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/ecp_nistz256.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/ecp_nistz256.h
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/ecp_nistz384.h
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/gfp_p256.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/ec/gfp_p384.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/modes/gcm.c
Examining data/rust-ring-0.16.9/crypto/fipsmodule/modes/internal.h
Examining data/rust-ring-0.16.9/crypto/internal.h
Examining data/rust-ring-0.16.9/crypto/limbs/limbs.c
Examining data/rust-ring-0.16.9/crypto/limbs/limbs.h
Examining data/rust-ring-0.16.9/crypto/mem.c
Examining data/rust-ring-0.16.9/include/GFp/aes.h
Examining data/rust-ring-0.16.9/include/GFp/arm_arch.h
Examining data/rust-ring-0.16.9/include/GFp/base.h
Examining data/rust-ring-0.16.9/include/GFp/cpu.h
Examining data/rust-ring-0.16.9/include/GFp/mem.h
Examining data/rust-ring-0.16.9/include/GFp/type_check.h
Examining data/rust-ring-0.16.9/third_party/fiat/curve25519.c
Examining data/rust-ring-0.16.9/third_party/fiat/curve25519_32.h
Examining data/rust-ring-0.16.9/third_party/fiat/curve25519_64.h
Examining data/rust-ring-0.16.9/third_party/fiat/curve25519_tables.h
Examining data/rust-ring-0.16.9/third_party/fiat/internal.h

FINAL RESULTS:

data/rust-ring-0.16.9/third_party/fiat/curve25519.c:799: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.
  signed char e[64];
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:888: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.
  signed char aslide[256];
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:889: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.
  signed char bslide[256];
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:683:16:  [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.
static uint8_t equal(signed char b, signed char c) {
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:741:33:  [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.
      cmov(&e, &multiples[j-1], equal(index, j));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:773:35:  [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.
  cmov(t, &k25519Precomp[pos][0], equal(babs, 1));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:774:35:  [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.
  cmov(t, &k25519Precomp[pos][1], equal(babs, 2));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:775:35:  [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.
  cmov(t, &k25519Precomp[pos][2], equal(babs, 3));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:776:35:  [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.
  cmov(t, &k25519Precomp[pos][3], equal(babs, 4));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:777:35:  [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.
  cmov(t, &k25519Precomp[pos][4], equal(babs, 5));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:778:35:  [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.
  cmov(t, &k25519Precomp[pos][5], equal(babs, 6));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:779:35:  [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.
  cmov(t, &k25519Precomp[pos][6], equal(babs, 7));
data/rust-ring-0.16.9/third_party/fiat/curve25519.c:780:35:  [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.
  cmov(t, &k25519Precomp[pos][7], equal(babs, 8));

ANALYSIS SUMMARY:

Hits = 13
Lines analyzed = 14858 in approximately 0.47 seconds (31788 lines/second)
Physical Source Lines of Code (SLOC) = 12050
Hits@level = [0]   0 [1]  10 [2]   3 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  13 [1+]  13 [2+]   3 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 1.07884 [1+] 1.07884 [2+] 0.248963 [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.