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/ir.lv2-1.3.4~dfsg0/convert4chan.c Examining data/ir.lv2-1.3.4~dfsg0/ir.cc Examining data/ir.lv2-1.3.4~dfsg0/ir.h Examining data/ir.lv2-1.3.4~dfsg0/ir_meter.cc Examining data/ir.lv2-1.3.4~dfsg0/ir_meter.h Examining data/ir.lv2-1.3.4~dfsg0/ir_modeind.cc Examining data/ir.lv2-1.3.4~dfsg0/ir_modeind.h Examining data/ir.lv2-1.3.4~dfsg0/ir_utils.cc Examining data/ir.lv2-1.3.4~dfsg0/ir_utils.h Examining data/ir.lv2-1.3.4~dfsg0/ir_wavedisplay.cc Examining data/ir.lv2-1.3.4~dfsg0/ir_wavedisplay.h Examining data/ir.lv2-1.3.4~dfsg0/ir_gui.cc FINAL RESULTS: data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:319:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "<b>Predelay</b>" S2 "\n" XS1 "%0.1fms" XS2, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:325:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "<b> Attack</b>" S2 "\n" XS1 "%0.0f%% %0.0fms" XS2, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:331:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "<b>Envelope</b>" S2 "\n" XS1 "%0.1f%%" XS2, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:336:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "<b>Length</b>" S2 "\n" XS1"%0.1f%%" XS2, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:341:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "<b>Stretch</b>" S2 "\n" XS1 "%0.1f%%" XS2, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:347:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "<b>Stereo in/IR</b>" S2 "\n" XS1 "%0.0f%% / %0.0f%%" XS2, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:355:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "%+0.1f dB" S2, v); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:357:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "0.0 dB" S2); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:359:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "%+0.1f dB" S2, v); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:361:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "mute" S2); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:368:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "%+0.1f dB" S2, v); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:370:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "0.0 dB" S2); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:372:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "%+0.1f dB" S2, v); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:374:4: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, S1 "mute" S2); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:388:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:395:3: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(str, 1024, data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:83:2: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(key, 20, "%016" PRIx64, fhash); data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:91:2: [4] (format) snprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. snprintf(key, 20, "%016" PRIx64, hash); data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:58:42: [3] (buffer) g_get_home_dir: This function is synonymous with 'getenv("HOME")';it returns untrustable input if the environment can beset by an attacker. It can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. gchar * ir_save_path = g_build_filename(g_get_home_dir(), IR_SAVE_FILE, NULL); data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:72:42: [3] (buffer) g_get_home_dir: This function is synonymous with 'getenv("HOME")';it returns untrustable input if the environment can beset by an attacker. It can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. gchar * ir_save_path = g_build_filename(g_get_home_dir(), IR_SAVE_FILE, NULL); data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:297: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 str[32]; data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:311: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 str[1024]; data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:383: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 str[1024]; data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:1368: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 str[4]; data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:82: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 key[20]; data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:90: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 key[20]; data/ir.lv2-1.3.4~dfsg0/convert4chan.c:44:6: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(file) < 1) { return 0; } data/ir.lv2-1.3.4~dfsg0/convert4chan.c:51:6: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(file) < 6) { return 0; } data/ir.lv2-1.3.4~dfsg0/convert4chan.c:52:28: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). const char * ext = file + strlen(file)-5; data/ir.lv2-1.3.4~dfsg0/convert4chan.c:190:9: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). file_R[strlen(file_R)-5] = 'R'; data/ir.lv2-1.3.4~dfsg0/convert4chan.c:202:9: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). file_4[strlen(file_4)-5] = '4'; data/ir.lv2-1.3.4~dfsg0/ir.cc:214:26: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (ir->source_path && (strlen(ir->source_path) > 0)) { data/ir.lv2-1.3.4~dfsg0/ir_gui.cc:993:30: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if ((bookmark != NULL) && (strlen(bookmark) > 0)) { data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:140:6: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(file) < 5) { return 0; } data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:141:28: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). const char * ext = file + strlen(file)-4; data/ir.lv2-1.3.4~dfsg0/ir_utils.cc:157:6: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(file) < 1) { return 0; } ANALYSIS SUMMARY: Hits = 36 Lines analyzed = 4199 in approximately 0.13 seconds (31581 lines/second) Physical Source Lines of Code (SLOC) = 3317 Hits@level = [0] 38 [1] 10 [2] 6 [3] 2 [4] 18 [5] 0 Hits@level+ = [0+] 74 [1+] 36 [2+] 26 [3+] 20 [4+] 18 [5+] 0 Hits/KSLOC@level+ = [0+] 22.3093 [1+] 10.8532 [2+] 7.83841 [3+] 6.02954 [4+] 5.42659 [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.