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/libuvc-0.0.6/include/libuvc/libuvc.h Examining data/libuvc-0.0.6/include/libuvc/libuvc_internal.h Examining data/libuvc-0.0.6/include/utlist.h Examining data/libuvc-0.0.6/src/ctrl-gen.c Examining data/libuvc-0.0.6/src/ctrl.c Examining data/libuvc-0.0.6/src/device.c Examining data/libuvc-0.0.6/src/diag.c Examining data/libuvc-0.0.6/src/example.c Examining data/libuvc-0.0.6/src/frame-mjpeg.c Examining data/libuvc-0.0.6/src/frame.c Examining data/libuvc-0.0.6/src/init.c Examining data/libuvc-0.0.6/src/misc.c Examining data/libuvc-0.0.6/src/stream.c Examining data/libuvc-0.0.6/src/test.c FINAL RESULTS: data/libuvc-0.0.6/src/ctrl.c:60:12: [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. unsigned char buf[2]; data/libuvc-0.0.6/src/device.c:495:14: [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. unsigned char buf[64]; data/libuvc-0.0.6/src/device.c:1133:3: [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(unit->guidExtensionCode, &block[4], 16); data/libuvc-0.0.6/src/device.c:1269:3: [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(format->guidFormat, &block[5], 16); data/libuvc-0.0.6/src/device.c:1298:3: [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(format->guidFormat, &block[5], 16); data/libuvc-0.0.6/src/device.c:1327:3: [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(format->fourccFormat, "MJPG", 4); data/libuvc-0.0.6/src/frame-mjpeg.c:113:3: [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(dinfo->tbl->bits, name##_len, sizeof(name##_len)); \ data/libuvc-0.0.6/src/frame-mjpeg.c:115:3: [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(dinfo->tbl->huffval, name##_val, sizeof(name##_val)); \ data/libuvc-0.0.6/src/frame-mjpeg.c:173:14: [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. unsigned char *buffer[1] = {( unsigned char*) out->data + lines_read * out->step }; data/libuvc-0.0.6/src/frame.c:121:3: [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(out->data, in->data, in->data_bytes); data/libuvc-0.0.6/src/misc.c:51:3: [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(d, s, n); data/libuvc-0.0.6/src/stream.c:565: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(strmh->outbuf + strmh->got_bytes, payload + header_len, data_len); data/libuvc-0.0.6/src/stream.c:1107:3: [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(frame->data, strmh->holdbuf, frame->data_bytes); ANALYSIS SUMMARY: Hits = 13 Lines analyzed = 8547 in approximately 0.21 seconds (40933 lines/second) Physical Source Lines of Code (SLOC) = 5382 Hits@level = [0] 54 [1] 0 [2] 13 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 67 [1+] 13 [2+] 13 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 12.4489 [1+] 2.41546 [2+] 2.41546 [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.