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/sylph-searcher-1.2.0/common/common.c Examining data/sylph-searcher-1.2.0/common/common.h Examining data/sylph-searcher-1.2.0/common/version.h Examining data/sylph-searcher-1.2.0/commands/syldbimport.c Examining data/sylph-searcher-1.2.0/commands/syldbquery.c Examining data/sylph-searcher-1.2.0/searcher/sylph-searcher.c Examining data/sylph-searcher-1.2.0/searcher/searcher-config.c Examining data/sylph-searcher-1.2.0/searcher/searcher-config.h Examining data/sylph-searcher-1.2.0/searcher/folder-selector.c Examining data/sylph-searcher-1.2.0/searcher/folder-selector.h FINAL RESULTS: data/sylph-searcher-1.2.0/commands/syldbimport.c:46: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(vp, p, next - p); data/sylph-searcher-1.2.0/commands/syldbimport.c:52:4: [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(vp, p, next - p); data/sylph-searcher-1.2.0/commands/syldbimport.c:553:9: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sid = atol(val); data/sylph-searcher-1.2.0/commands/syldbimport.c:555:12: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). msgnum = atoi(val); data/sylph-searcher-1.2.0/commands/syldbquery.c:50:9: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). sid = atol(val); data/sylph-searcher-1.2.0/common/common.c:261:13: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). *port = atoi(argv[i + 1]); data/sylph-searcher-1.2.0/common/common.c:322:21: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). options->port = atoi(argv[++i]); data/sylph-searcher-1.2.0/common/common.c:576:10: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). *sid = atol(val); data/sylph-searcher-1.2.0/common/common.c:604:10: [2] (integer) atol: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). *sid = atol(val); data/sylph-searcher-1.2.0/searcher/searcher-config.c:119:18: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). config->port = atoi(gtk_entry_get_text(GTK_ENTRY(port_entry))); data/sylph-searcher-1.2.0/searcher/searcher-config.c:123:4: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). atoi(gtk_entry_get_text(GTK_ENTRY(limit_entry))); data/sylph-searcher-1.2.0/searcher/sylph-searcher.c:849:2: [2] (buffer) wchar_t: 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. wchar_t path[MAX_PATH + 1]; data/sylph-searcher-1.2.0/commands/syldbimport.c:42:24: [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). vp = valid = g_malloc(strlen(str) + 1); data/sylph-searcher-1.2.0/commands/syldbimport.c:133:10: [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). len = strlen(p); data/sylph-searcher-1.2.0/commands/syldbimport.c:190:11: [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). llen = strlen(p); data/sylph-searcher-1.2.0/commands/syldbimport.c:628:14: [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). p = path_ + strlen(path_) - 1; data/sylph-searcher-1.2.0/common/common.c:41:8: [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). len = strlen(str); data/sylph-searcher-1.2.0/common/common.c:60:8: [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). len = strlen(str); data/sylph-searcher-1.2.0/common/common.c:113: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). strlen(mecabenc_str) + 1); data/sylph-searcher-1.2.0/common/common.c:126:4: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(buf, node->surface, len); ANALYSIS SUMMARY: Hits = 20 Lines analyzed = 3416 in approximately 0.09 seconds (39561 lines/second) Physical Source Lines of Code (SLOC) = 2813 Hits@level = [0] 0 [1] 8 [2] 12 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 20 [1+] 20 [2+] 12 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 7.10985 [1+] 7.10985 [2+] 4.26591 [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.