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/bbmap-38.87+dfsg/jni/align2_BandedAlignerJNI.h
Examining data/bbmap-38.87+dfsg/jni/align2_MultiStateAligner11tsJNI.h
Examining data/bbmap-38.87+dfsg/jni/BandedAlignerJNI.c
Examining data/bbmap-38.87+dfsg/jni/BBMergeOverlapper.c
Examining data/bbmap-38.87+dfsg/jni/IceCreamAlignerJNI.c
Examining data/bbmap-38.87+dfsg/jni/icecream_IceCreamAlignerJNI.h
Examining data/bbmap-38.87+dfsg/jni/jgi_BBMergeOverlapper.h
Examining data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c

FINAL RESULTS:

data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:101:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	jbyte * read,
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:140:44:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			const jbyte call0=(row<2 ? (jbyte)'?' : read[row-2]);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:141:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			const jbyte call1=read[row-1];
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:362:10:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	jbyte * read,
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:416:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		jbyte c=read[i];
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:461:44:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			const jbyte call0=(row<2 ? (jbyte)'?' : read[row-2]);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:462:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			const jbyte call1=read[row-1];
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:710:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
							jbyteArray read,
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:723:49:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  jsize read_length=(*env)->GetArrayLength(env, read);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:730:64:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  jbyte * jread=(jbyte*)(*env)->GetPrimitiveArrayCritical(env, read, NULL);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:744:46:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  (*env)->ReleasePrimitiveArrayCritical(env, read, jread, JNI_ABORT);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:756:19:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
							jbyteArray read,
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:776:49:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  jsize read_length=(*env)->GetArrayLength(env, read);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:783:64:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  jbyte * jread=(jbyte*)(*env)->GetPrimitiveArrayCritical(env, read, NULL);
data/bbmap-38.87+dfsg/jni/MultiStateAligner11tsJNI.c:801:46:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  (*env)->ReleasePrimitiveArrayCritical(env, read, jread, JNI_ABORT);

ANALYSIS SUMMARY:

Hits = 15
Lines analyzed = 2933 in approximately 0.21 seconds (13837 lines/second)
Physical Source Lines of Code (SLOC) = 2300
Hits@level = [0]   1 [1]  15 [2]   0 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  16 [1+]  15 [2+]   0 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 6.95652 [1+] 6.52174 [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.