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/caps-0.9.26/Click.cc Examining data/caps-0.9.26/basics.h Examining data/caps-0.9.26/ladspa.h Examining data/caps-0.9.26/dsp/RBJ.h Examining data/caps-0.9.26/dsp/IIR2.h Examining data/caps-0.9.26/dsp/complex.h Examining data/caps-0.9.26/dsp/White.h Examining data/caps-0.9.26/dsp/IIR1.h Examining data/caps-0.9.26/dsp/util.h Examining data/caps-0.9.26/dsp/Oversampler.h Examining data/caps-0.9.26/dsp/FIR.h Examining data/caps-0.9.26/dsp/sinc.h Examining data/caps-0.9.26/dsp/Sine.h Examining data/caps-0.9.26/dsp/windows.h Examining data/caps-0.9.26/dsp/v4f.h Examining data/caps-0.9.26/dsp/v4f_FIR.h Examining data/caps-0.9.26/dsp/v4f_IIR2.h Examining data/caps-0.9.26/dsp/ToneStack.h Examining data/caps-0.9.26/dsp/TDFII.h Examining data/caps-0.9.26/dsp/Compress.h Examining data/caps-0.9.26/dsp/RMS.h Examining data/caps-0.9.26/dsp/polynomials.h Examining data/caps-0.9.26/dsp/Roessler.h Examining data/caps-0.9.26/dsp/Delay.h Examining data/caps-0.9.26/dsp/FPTruncateMode.h Examining data/caps-0.9.26/dsp/SVF.h Examining data/caps-0.9.26/dsp/Lorenz.h Examining data/caps-0.9.26/dsp/Eq.h Examining data/caps-0.9.26/dsp/Butterworth.h Examining data/caps-0.9.26/dsp/ChebyshevPoly.h Examining data/caps-0.9.26/dsp/polynomials.cc Examining data/caps-0.9.26/Click.h Examining data/caps-0.9.26/Descriptor.h Examining data/caps-0.9.26/Cabinet.h Examining data/caps-0.9.26/waves/click.h Examining data/caps-0.9.26/waves/profit.h Examining data/caps-0.9.26/Amp.cc Examining data/caps-0.9.26/Amp.h Examining data/caps-0.9.26/White.cc Examining data/caps-0.9.26/White.h Examining data/caps-0.9.26/Phaser.cc Examining data/caps-0.9.26/Phaser.h Examining data/caps-0.9.26/AutoFilter.cc Examining data/caps-0.9.26/AutoFilter.h Examining data/caps-0.9.26/CabIV.cc Examining data/caps-0.9.26/CabIV_64_128.h Examining data/caps-0.9.26/ToneStack.cc Examining data/caps-0.9.26/ToneStack.h Examining data/caps-0.9.26/Scape.cc Examining data/caps-0.9.26/Scape.h Examining data/caps-0.9.26/Pan.cc Examining data/caps-0.9.26/Pan.h Examining data/caps-0.9.26/Chorus.cc Examining data/caps-0.9.26/Chorus.h Examining data/caps-0.9.26/Reverb.cc Examining data/caps-0.9.26/Reverb.h Examining data/caps-0.9.26/CabIII.cc Examining data/caps-0.9.26/CabIIIModels.h Examining data/caps-0.9.26/interface.cc Examining data/caps-0.9.26/version.h Examining data/caps-0.9.26/Sin.h Examining data/caps-0.9.26/Fractals.h Examining data/caps-0.9.26/Compress.h Examining data/caps-0.9.26/Eq.h Examining data/caps-0.9.26/Saturate.h Examining data/caps-0.9.26/Noisegate.h Examining data/caps-0.9.26/Saturate.cc Examining data/caps-0.9.26/Noisegate.cc Examining data/caps-0.9.26/Sin.cc Examining data/caps-0.9.26/Fractals.cc Examining data/caps-0.9.26/Compress.cc Examining data/caps-0.9.26/Eq.cc FINAL RESULTS: data/caps-0.9.26/basics.h:127:48: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. static inline float frandom() { return (float) random() / (float) RAND_MAX; } data/caps-0.9.26/Descriptor.h:104:37: [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. const char ** names = new const char * [PortCount]; data/caps-0.9.26/Noisegate.cc:134:18: [2] (misc) open: 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). if (fabs(a) < open) data/caps-0.9.26/dsp/v4f.h:101:3: [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. char _data [(N+1) * sizeof(v4f_t)]; data/caps-0.9.26/dsp/v4f.h:143:3: [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. char _data [4 * sizeof (v4f_t)]; data/caps-0.9.26/dsp/v4f_FIR.h:59:3: [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. char _data [DataSize + sizeof (v4f_t)]; data/caps-0.9.26/dsp/v4f_FIR.h:139:7: [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. char s[20]; data/caps-0.9.26/dsp/v4f_FIR.h:140:7: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. sprintf (s, "%.1f", *f); data/caps-0.9.26/dsp/v4f_IIR2.h:60:3: [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. char __data [10 * sizeof (v4f_t)]; data/caps-0.9.26/dsp/v4f_IIR2.h:78: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 (data(), b.data(), 9 * sizeof (v4f_t)); data/caps-0.9.26/dsp/v4f_IIR2.h:273:3: [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. char __data [DataSize + sizeof (v4f_t)]; data/caps-0.9.26/dsp/v4f_IIR2.h:647:3: [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. char __data [10 * sizeof (v4f_t)]; data/caps-0.9.26/dsp/v4f_IIR2.h:660:6: [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 (data(), b.data(), 9 * sizeof (v4f_t)); } data/caps-0.9.26/dsp/Delay.h:44:8: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). uint read, write; data/caps-0.9.26/dsp/Delay.h:74:24: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). sample_t x = data [read]; data/caps-0.9.26/dsp/Delay.h:78:41: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). inline sample_t peek() { return data [read]; } ANALYSIS SUMMARY: Hits = 16 Lines analyzed = 16888 in approximately 0.78 seconds (21655 lines/second) Physical Source Lines of Code (SLOC) = 12191 Hits@level = [0] 2 [1] 3 [2] 12 [3] 1 [4] 0 [5] 0 Hits@level+ = [0+] 18 [1+] 16 [2+] 13 [3+] 1 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 1.4765 [1+] 1.31244 [2+] 1.06636 [3+] 0.0820277 [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.