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/langford-0.0.20130228/langford_spi.cpp Examining data/langford-0.0.20130228/libs/dev/adf4351_regs.hpp Examining data/langford-0.0.20130228/libs/dev/fsynthADF4351.cpp Examining data/langford-0.0.20130228/libs/dev/fsynthADF4351.hpp Examining data/langford-0.0.20130228/libs/dev/fsynthTP3_HP.cpp Examining data/langford-0.0.20130228/libs/dev/fsynthTP3_HP.hpp Examining data/langford-0.0.20130228/libs/dev/testbench.cpp Examining data/langford-0.0.20130228/libs/reference/adf4350.c Examining data/langford-0.0.20130228/libs/reference/adf4350.h Examining data/langford-0.0.20130228/libs/reference/driver1_util.cpp Examining data/langford-0.0.20130228/libs/adf4351_regs.hpp Examining data/langford-0.0.20130228/libs/fsynth.cpp Examining data/langford-0.0.20130228/libs/fsynth.hpp Examining data/langford-0.0.20130228/libs/lmh6521.cpp Examining data/langford-0.0.20130228/libs/lmh6521_regs.hpp Examining data/langford-0.0.20130228/langford_adc_util.cpp Examining data/langford-0.0.20130228/langford_ioctl.h Examining data/langford-0.0.20130228/langford_spi.h Examining data/langford-0.0.20130228/langford_util.cpp Examining data/langford-0.0.20130228/langford.c Examining data/langford-0.0.20130228/langford.h FINAL RESULTS: data/langford-0.0.20130228/langford.c:163: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(cdev_read_buff + cdev_read_buff_end, DevPrivData->pRxDmaBuffs[BuffStart], MIN(DMABUFFSIZE, CDEVBUFFSIZE - cdev_read_buff_end)); data/langford-0.0.20130228/langford.c:166: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(cdev_read_buff, DevPrivData->pRxDmaBuffs[BuffStart] + CDEVBUFFSIZE - cdev_read_buff_end, DMABUFFSIZE - CDEVBUFFSIZE + cdev_read_buff_end); data/langford-0.0.20130228/langford.c:269: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(DevPrivData->pTxDmaBuffs[BuffEnd], cdev_write_buff + cdev_write_buff_start, MIN(DMABUFFSIZE, CDEVBUFFSIZE - cdev_write_buff_start)); data/langford-0.0.20130228/langford.c:272:7: [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(DevPrivData->pTxDmaBuffs[BuffEnd] + CDEVBUFFSIZE - cdev_write_buff_start, cdev_write_buff, DMABUFFSIZE - CDEVBUFFSIZE + cdev_write_buff_start); data/langford-0.0.20130228/langford_adc_util.cpp:47:10: [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). DevFD = open(argv[1], O_RDWR); data/langford-0.0.20130228/langford_util.cpp:61:10: [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). DevFD = open(argv[1], O_RDWR); data/langford-0.0.20130228/libs/dev/fsynthADF4351.cpp:104:10: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/dev/fsynthADF4351.cpp:142:10: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/dev/fsynthTP3_HP.cpp:106:10: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/dev/fsynthTP3_HP.cpp:144:10: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/fsynth.cpp:168:11: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/fsynth.cpp:207:11: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/lmh6521.cpp:91:10: [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). DevFD = open(FileName.c_str(), O_RDWR); data/langford-0.0.20130228/libs/reference/adf4350.c:307:25: [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. return ret < 0 ? ret : sprintf(buf, "%llu\n", val); data/langford-0.0.20130228/libs/reference/adf4350.h:107:2: [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 name[32]; data/langford-0.0.20130228/libs/reference/driver1_util.cpp:233:10: [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). DevFD = open(argv[1], O_RDWR); ANALYSIS SUMMARY: Hits = 16 Lines analyzed = 4747 in approximately 0.44 seconds (10835 lines/second) Physical Source Lines of Code (SLOC) = 3539 Hits@level = [0] 0 [1] 0 [2] 16 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 16 [1+] 16 [2+] 16 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 4.52105 [1+] 4.52105 [2+] 4.52105 [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.