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/purple-lurch-0.6.8+git20200527.388605/headers/jabber/adhoccommands.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/auth.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/auth_digest_md5.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/auth_scram.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/bosh.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/buddy.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/caps.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/chat.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/data.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/disco.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/facebook_roster.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/ibb.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/iq.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/jabber.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/jutil.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/message.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/namespaces.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/oob.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/parser.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/pep.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/ping.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/presence.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/roster.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/si.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/useravatar.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/usermood.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/usernick.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/usertune.h
Examining data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/xdata.h
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch.h
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch_api.c
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch_api.h
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch_cmd_ui.c
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch_cmd_ui.h
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch_util.c
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch_util.h
Examining data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c
Examining data/purple-lurch-0.6.8+git20200527.388605/test/test_lurch_util.c
Examining data/purple-lurch-0.6.8+git20200527.388605/test/test_lurch_api.c

FINAL RESULTS:

data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c:756:36:  [3] (random) g_random_int:
  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.
  rand_str = g_strdup_printf("%i", g_random_int());
data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/ibb.h:41:66:  [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).
                                        const char *id, xmlnode *open);
data/purple-lurch-0.6.8+git20200527.388605/headers/jabber/ibb.h:80:47:  [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).
	const gchar *from, const gchar *id, xmlnode *open, gpointer user_data);
data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c:1266: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(temp_addr_p, &curr_addr, sizeof(lurch_addr));
data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c:30: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).
#define strnlen(a, b) (MIN(strlen(a), (b)))
data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c:1165:74:  [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 (strncmp(purple_account_get_protocol_id(acc_p), JABBER_PROTOCOL_ID, strlen(JABBER_PROTOCOL_ID))) {
data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c:2096:108:  [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 (strncmp(purple_account_get_protocol_id(purple_conversation_get_account(conv_p)), JABBER_PROTOCOL_ID, strlen(JABBER_PROTOCOL_ID))) {
data/purple-lurch-0.6.8+git20200527.388605/src/lurch.c:2108:108:  [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 (strncmp(purple_account_get_protocol_id(purple_conversation_get_account(conv_p)), JABBER_PROTOCOL_ID, strlen(JABBER_PROTOCOL_ID))) {
data/purple-lurch-0.6.8+git20200527.388605/src/lurch_util.c:74:49:  [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).
  ret_val = axc_context_set_db_fn(ctx_p, db_fn, strlen(db_fn));
data/purple-lurch-0.6.8+git20200527.388605/src/lurch_util.c:114:17:  [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 (!uname || strlen(uname) == 0) {
data/purple-lurch-0.6.8+git20200527.388605/src/lurch_util.c:143: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).
  if (!fp || strlen(fp) != 98) {
data/purple-lurch-0.6.8+git20200527.388605/test/test_lurch_api.c:593:83:  [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).
    axc_buf * mock_key_buf_4223 = axc_buf_create((unsigned char *) mock_key_4223, strlen(mock_key_4223));
data/purple-lurch-0.6.8+git20200527.388605/test/test_lurch_api.c:605:83:  [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).
    axc_buf * mock_key_buf_1338 = axc_buf_create((unsigned char *) mock_key_1338, strlen(mock_key_1338));
data/purple-lurch-0.6.8+git20200527.388605/test/test_lurch_api.c:684:83:  [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).
    axc_buf * mock_key_buf_4223 = axc_buf_create((unsigned char *) mock_key_4223, strlen(mock_key_4223));
data/purple-lurch-0.6.8+git20200527.388605/test/test_lurch_api.c:727:83:  [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).
    axc_buf * mock_key_buf_4223 = axc_buf_create((unsigned char *) mock_key_4223, strlen(mock_key_4223));

ANALYSIS SUMMARY:

Hits = 15
Lines analyzed = 7920 in approximately 0.24 seconds (32888 lines/second)
Physical Source Lines of Code (SLOC) = 5097
Hits@level = [0]   0 [1]  11 [2]   3 [3]   1 [4]   0 [5]   0
Hits@level+ = [0+]  15 [1+]  15 [2+]   4 [3+]   1 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 2.94291 [1+] 2.94291 [2+] 0.784775 [3+] 0.196194 [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.