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/sylfilter-0.8/libsylph/procheader.c
Examining data/sylfilter-0.8/libsylph/procheader.h
Examining data/sylfilter-0.8/libsylph/procmsg.c
Examining data/sylfilter-0.8/libsylph/procmsg.h
Examining data/sylfilter-0.8/libsylph/procmime.c
Examining data/sylfilter-0.8/libsylph/procmime.h
Examining data/sylfilter-0.8/libsylph/codeconv.c
Examining data/sylfilter-0.8/libsylph/codeconv.h
Examining data/sylfilter-0.8/libsylph/base64.c
Examining data/sylfilter-0.8/libsylph/base64.h
Examining data/sylfilter-0.8/libsylph/quoted-printable.c
Examining data/sylfilter-0.8/libsylph/quoted-printable.h
Examining data/sylfilter-0.8/libsylph/unmime.c
Examining data/sylfilter-0.8/libsylph/unmime.h
Examining data/sylfilter-0.8/libsylph/uuencode.c
Examining data/sylfilter-0.8/libsylph/uuencode.h
Examining data/sylfilter-0.8/libsylph/html.c
Examining data/sylfilter-0.8/libsylph/html.h
Examining data/sylfilter-0.8/libsylph/utils.c
Examining data/sylfilter-0.8/libsylph/utils.h
Examining data/sylfilter-0.8/libsylph/defs.h
Examining data/sylfilter-0.8/lib/filter.h
Examining data/sylfilter-0.8/lib/filter-manager.h
Examining data/sylfilter-0.8/lib/filter-utils.h
Examining data/sylfilter-0.8/lib/filter-kvs.h
Examining data/sylfilter-0.8/lib/filter-kvs-qdbm.h
Examining data/sylfilter-0.8/lib/filter-kvs-sqlite.h
Examining data/sylfilter-0.8/lib/filter-kvs-gdbm.h
Examining data/sylfilter-0.8/lib/filter.c
Examining data/sylfilter-0.8/lib/filter-manager.c
Examining data/sylfilter-0.8/lib/filter-utils.c
Examining data/sylfilter-0.8/lib/filter-kvs.c
Examining data/sylfilter-0.8/lib/filter-kvs-qdbm.c
Examining data/sylfilter-0.8/lib/filter-kvs-sqlite.c
Examining data/sylfilter-0.8/lib/filter-kvs-gdbm.c
Examining data/sylfilter-0.8/lib/filter-private.h
Examining data/sylfilter-0.8/lib/filters/textcontent-filter.h
Examining data/sylfilter-0.8/lib/filters/blacklist-filter.h
Examining data/sylfilter-0.8/lib/filters/whitelist-filter.h
Examining data/sylfilter-0.8/lib/filters/wordsep-filter.h
Examining data/sylfilter-0.8/lib/filters/ngram-filter.h
Examining data/sylfilter-0.8/lib/filters/bayes-filter.h
Examining data/sylfilter-0.8/lib/filters/textcontent-filter.c
Examining data/sylfilter-0.8/lib/filters/blacklist-filter.c
Examining data/sylfilter-0.8/lib/filters/whitelist-filter.c
Examining data/sylfilter-0.8/lib/filters/wordsep-filter.c
Examining data/sylfilter-0.8/lib/filters/ngram-filter.c
Examining data/sylfilter-0.8/lib/filters/bayes-filter.c
Examining data/sylfilter-0.8/src/sylfilter.c

FINAL RESULTS:

data/sylfilter-0.8/libsylph/utils.c:126:12:  [5] (race) chmod:
  This accepts filename arguments; if an attacker can move those files, a
  race condition results. (CWE-362). Use fchmod( ) instead.
		retval = chmod(cp_path, mode);
data/sylfilter-0.8/libsylph/utils.c:135:9:  [5] (race) chmod:
  This accepts filename arguments; if an attacker can move those files, a
  race condition results. (CWE-362). Use fchmod( ) instead.
	return chmod(path, mode);
data/sylfilter-0.8/libsylph/utils.h:47:18:  [5] (race) chmod:
  This accepts filename arguments; if an attacker can move those files, a
  race condition results. (CWE-362). Use fchmod( ) instead.
#define g_chmod		chmod
data/sylfilter-0.8/lib/filter.c:163:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(d + len + 1, s);			\
data/sylfilter-0.8/libsylph/procheader.c:698:4:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
			strcpy(tmp, str);
data/sylfilter-0.8/libsylph/procmime.c:933:5:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
				strcpy(prev_empty_line, buf);
data/sylfilter-0.8/libsylph/procmime.c:1059:6:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
					strcpy(prev_empty_line, buf);
data/sylfilter-0.8/libsylph/utils.c:1731:4:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
			strcpy(ap, p);
data/sylfilter-0.8/libsylph/utils.h:116:3:  [4] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused).
		strcpy(__tmp, str); \
data/sylfilter-0.8/lib/filter-utils.c:129:11:  [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.
			return g_get_home_dir();
data/sylfilter-0.8/lib/filter-utils.c:134:9:  [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.
	return g_get_home_dir();
data/sylfilter-0.8/libsylph/utils.c:2174:14:  [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.
		home_dir = g_get_home_dir();
data/sylfilter-0.8/libsylph/utils.c:2181:9:  [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.
	return g_get_home_dir();
data/sylfilter-0.8/libsylph/utils.c:2984:21:  [3] (random) g_random_int_range:
  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.
		buf_uniq[i] = tbl[g_random_int_range(0, sizeof(tbl) - 1)];
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:129:2:  [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(vbuf, dvalue.dptr, MIN(vsize, dvalue.dsize));
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:156: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[1024];
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:171: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(key, dkey.dptr, ksize);
data/sylfilter-0.8/lib/filter-kvs-qdbm.c:121: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 vbuf[1024];
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:78: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 buf[1024];
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:100: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 buf[1024];
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:116: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 buf[1024];
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:140:22:  [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).
	*((gint32 *)data) = atoi(val);
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:147: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 buf[1024];
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:203:19:  [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).
	*((int *)data) = atoi(val);
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:210: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 buf[1024];
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:242:9:  [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).
	ival = atoi(val);
data/sylfilter-0.8/lib/filter-kvs-sqlite.c:252: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 buf[1024];
data/sylfilter-0.8/lib/filter-kvs.c:54:26:  [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).
	g_return_val_if_fail(ke.open != NULL, NULL);
data/sylfilter-0.8/lib/filter-kvs.c:55:12:  [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).
	return ke.open(dbfile);
data/sylfilter-0.8/lib/filter-kvs.c:122: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 vbuf[4];
data/sylfilter-0.8/lib/filter-kvs.c:139: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 vbuf[4];
data/sylfilter-0.8/lib/filter-kvs.c:161: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 vbuf[4];
data/sylfilter-0.8/lib/filter-kvs.c:182: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 vbuf[4];
data/sylfilter-0.8/lib/filter-kvs.h:16:17:  [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).
	XFilterKVS * (*open)	(const char *dbfile);
data/sylfilter-0.8/lib/filter-private.h:25: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 *input_mime_types[8];
data/sylfilter-0.8/lib/filter-utils.c:123:3:  [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/sylfilter-0.8/lib/filter.c:388: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 buf[1024];
data/sylfilter-0.8/lib/filters/bayes-filter.c:861: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 buf[1024];
data/sylfilter-0.8/lib/filters/textcontent-filter.c:37: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 buf[8192];
data/sylfilter-0.8/lib/filters/textcontent-filter.c:135: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(p + 1, "  ", 2);
data/sylfilter-0.8/lib/filters/textcontent-filter.c:137: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(p + 1, "    ", 4);
data/sylfilter-0.8/lib/filters/textcontent-filter.c:139: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(p + 1, "   ", 3);
data/sylfilter-0.8/lib/filters/textcontent-filter.c:141: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(p + 1, "  ", 2);
data/sylfilter-0.8/libsylph/base64.c:142: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(decoder->buf, buf, sizeof(buf));
data/sylfilter-0.8/libsylph/html.c:616:8:  [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).
		ch = atoi(symbol_name + 2);
data/sylfilter-0.8/libsylph/procmime.c:521: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).
				count = atoi(next);
data/sylfilter-0.8/libsylph/procmime.c:746:8:  [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).
			t = atoi(param->value);
data/sylfilter-0.8/libsylph/procmime.c:750:8:  [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).
			n = atoi(param->value);
data/sylfilter-0.8/libsylph/procmime.c:1043:6:  [2] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused). Risk is low because the source is a constant string.
					strcpy(prev_empty_line, "\r\n");
data/sylfilter-0.8/libsylph/unmime.c:81: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(charset, eword_begin_p + 2, len);
data/sylfilter-0.8/libsylph/utils.c:299:9:  [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).
	return atoi(nstr);
data/sylfilter-0.8/libsylph/utils.c:2153:3:  [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/sylfilter-0.8/libsylph/utils.c:3161:2:  [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(fname, tmpdir, tmplen);
data/sylfilter-0.8/libsylph/utils.c:3163:2:  [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(fname + tmplen + 1, progname, proglen);
data/sylfilter-0.8/libsylph/utils.c:3164:2:  [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(fname + tmplen + 1 + proglen, suffix, sizeof(suffix));
data/sylfilter-0.8/libsylph/utils.c:3169:10:  [2] (tmpfile) tmpfile:
  Function tmpfile() has a security flaw on some systems (e.g., older System
  V systems) (CWE-377).
		return tmpfile();
data/sylfilter-0.8/libsylph/utils.h:30:17:  [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).
#define g_open		open
data/sylfilter-0.8/libsylph/utils.h:38:18:  [2] (misc) fopen:
  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).
#define g_fopen		fopen
data/sylfilter-0.8/libsylph/utils.h:147: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(__tmp, str1, len1); \
data/sylfilter-0.8/libsylph/utils.h:148: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(__tmp + len1, str2, len2 + 1); \
data/sylfilter-0.8/libsylph/uuencode.c:11:7:  [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.
const char uudigit[64] =
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:75:15:  [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).
	dkey.dsize = strlen(key);
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:92:15:  [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).
	dkey.dsize = strlen(key);
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:107:15:  [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).
	dkey.dsize = strlen(key);
data/sylfilter-0.8/lib/filter-kvs-gdbm.c:124:15:  [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).
	dkey.dsize = strlen(key);
data/sylfilter-0.8/lib/filter.c:160: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).
		len = strlen(d);			\
data/sylfilter-0.8/lib/filter.c:161: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).
		d = g_realloc(d, len + strlen(s) + 2);	\
data/sylfilter-0.8/libsylph/codeconv.c:179:20:  [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).
	outbuf = g_malloc(strlen(inbuf) * 2 + 1);
data/sylfilter-0.8/libsylph/codeconv.c:264:20:  [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).
	outbuf = g_malloc(strlen(inbuf) * 2 + 1);
data/sylfilter-0.8/libsylph/codeconv.c:444:20:  [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).
	outbuf = g_malloc(strlen(inbuf) * 3 + 4);
data/sylfilter-0.8/libsylph/codeconv.c:581:20:  [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).
	outbuf = g_malloc(strlen(inbuf) * 5 + 4);
data/sylfilter-0.8/libsylph/codeconv.c:679:20:  [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).
	outbuf = g_malloc(strlen(inbuf) * 2 + 1);
data/sylfilter-0.8/libsylph/codeconv.c:1053:23:  [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).
				memmove(p, p + 1, strlen(p));
data/sylfilter-0.8/libsylph/codeconv.c:1096:22:  [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).
			memmove(p, p + 1, strlen(p));
data/sylfilter-0.8/libsylph/codeconv.c:1110:22:  [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).
			memmove(p, p + 1, strlen(p));
data/sylfilter-0.8/libsylph/codeconv.c:1143: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/sylfilter-0.8/libsylph/codeconv.c:1535:12:  [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).
	in_size = strlen(inbuf);
data/sylfilter-0.8/libsylph/codeconv.c:1976:7:  [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(locale_table[i].locale))) {
data/sylfilter-0.8/libsylph/codeconv.c:1982: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).
			if (strlen(cur_locale) == 2 &&
data/sylfilter-0.8/libsylph/codeconv.c:2067:7:  [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(locale_table[i].locale))) {
data/sylfilter-0.8/libsylph/codeconv.c:2072: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).
			if (strlen(cur_locale) == 2 &&
data/sylfilter-0.8/libsylph/codeconv.c:2276:16:  [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).
	mimestr_len = strlen(MIMESEP_BEGIN) + strlen(mimesep_enc) +
data/sylfilter-0.8/libsylph/codeconv.c:2276:40:  [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).
	mimestr_len = strlen(MIMESEP_BEGIN) + strlen(mimesep_enc) +
data/sylfilter-0.8/libsylph/codeconv.c:2277:3:  [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(MIMESEP_END);
data/sylfilter-0.8/libsylph/codeconv.c:2354:19:  [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).
				out_str_len = strlen(out_str);
data/sylfilter-0.8/libsylph/codeconv.c:2366:23:  [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 (mimestr_len + strlen(block_encoding) + out_enc_str_len <= left) {
data/sylfilter-0.8/libsylph/codeconv.c:2393:19:  [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).
				out_str_len = strlen(out_str);
data/sylfilter-0.8/libsylph/codeconv.c:2412: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).
					strlen(block_encoding) +
data/sylfilter-0.8/libsylph/codeconv.c:2413: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).
					strlen(enc_str);
data/sylfilter-0.8/libsylph/codeconv.c:2458: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).
	outp = out = g_malloc(strlen(str) * 3 + 1);
data/sylfilter-0.8/libsylph/codeconv.c:2494:13:  [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).
	name_len = strlen(param_name);
data/sylfilter-0.8/libsylph/codeconv.c:2508: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(enc_str) <= max_linelen) {
data/sylfilter-0.8/libsylph/procheader.c:44: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(hp->name)))
data/sylfilter-0.8/libsylph/procheader.c:56:23:  [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).
		gchar *bufp = buf + strlen(buf);
data/sylfilter-0.8/libsylph/procheader.c:64:15:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			nexthead = fgetc(fp);
data/sylfilter-0.8/libsylph/procheader.c:88:13:  [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).
				bufp += strlen(bufp);
data/sylfilter-0.8/libsylph/procheader.c:106:14:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		nexthead = fgetc(fp);
data/sylfilter-0.8/libsylph/procheader.c:108:20:  [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).
			size_t buflen = strlen(buf);
data/sylfilter-0.8/libsylph/procheader.c:142:15:  [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).
	bufp = buf + strlen(buf);
data/sylfilter-0.8/libsylph/procheader.c:150:14:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		nexthead = fgetc(fp);
data/sylfilter-0.8/libsylph/procheader.c:174:12:  [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).
			bufp += strlen(bufp);
data/sylfilter-0.8/libsylph/procheader.c:442:13:  [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 = buf + strlen(hp->name);
data/sylfilter-0.8/libsylph/procheader.c:566: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).
		hp = buf + strlen(hentry[hnum].name);
data/sylfilter-0.8/libsylph/procheader.c:749:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%10s %d %9s %d %2d:%2d:%2d %5s",
data/sylfilter-0.8/libsylph/procheader.c:753:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%3s,%d %9s %d %2d:%2d:%2d %5s",
data/sylfilter-0.8/libsylph/procheader.c:757:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%d %9s %d %2d:%2d:%2d %5s",
data/sylfilter-0.8/libsylph/procheader.c:762:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%10s %d %9s %d %2d:%2d:%2d",
data/sylfilter-0.8/libsylph/procheader.c:766:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%d %9s %d %2d:%2d:%2d",
data/sylfilter-0.8/libsylph/procheader.c:771:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%10s %d %9s %d %2d:%2d %5s",
data/sylfilter-0.8/libsylph/procheader.c:775:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%d %9s %d %2d:%2d %5s",
data/sylfilter-0.8/libsylph/procheader.c:780:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%10s %d %9s %d %2d:%2d",
data/sylfilter-0.8/libsylph/procheader.c:784:11:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	result = sscanf(str, "%d %9s %d %2d:%2d",
data/sylfilter-0.8/libsylph/procmime.c:213:18:  [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).
		boundary_len = strlen(boundary);
data/sylfilter-0.8/libsylph/procmime.c:224:18:  [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).
		boundary_len = strlen(boundary);
data/sylfilter-0.8/libsylph/procmime.c:307: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).
		len = strlen(buf);
data/sylfilter-0.8/libsylph/procmime.c:320:34:  [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).
				fpos - partinfo->sub->fpos - strlen(buf);
data/sylfilter-0.8/libsylph/procmime.c:594: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).
				dec_value = g_malloc(strlen(begin) + 1);
data/sylfilter-0.8/libsylph/procmime.c:620: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).
				dec_value = g_malloc(strlen(begin) + 1);
data/sylfilter-0.8/libsylph/procmime.c:819:22:  [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).
				(mimeinfo, buf + strlen(hp->name));
data/sylfilter-0.8/libsylph/procmime.c:822:22:  [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).
				(mimeinfo, buf + strlen(hp->name));
data/sylfilter-0.8/libsylph/procmime.c:825:22:  [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).
				(mimeinfo, buf + strlen(hp->name));
data/sylfilter-0.8/libsylph/procmime.c:854: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).
		len = strlen(buf);
data/sylfilter-0.8/libsylph/procmime.c:899:18:  [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).
		boundary_len = strlen(boundary);
data/sylfilter-0.8/libsylph/procmime.c:1027: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(buf);
data/sylfilter-0.8/libsylph/procmime.c:1051:6:  [1] (buffer) strcpy:
  Does not check for buffer overflows when copying to destination [MS-banned]
  (CWE-120). Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy
  easily misused). Risk is low because the source is a constant character.
					strcpy(prev_empty_line, "\n");
data/sylfilter-0.8/libsylph/procmime.c:1688: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).
	total_len = strlen(str);
data/sylfilter-0.8/libsylph/unmime.c:35: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).
	outbuf = g_string_sized_new(strlen(encoded_str) * 2);
data/sylfilter-0.8/libsylph/utils.c:383: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).
	len1 = strlen(s1);
data/sylfilter-0.8/libsylph/utils.c:384: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).
	len2 = strlen(s2);
data/sylfilter-0.8/libsylph/utils.c:412: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).
	plen = strlen(parent);
data/sylfilter-0.8/libsylph/utils.c:437: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).
	for (s = str + strlen(str) - 1;
data/sylfilter-0.8/libsylph/utils.c:453: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).
	for (s = str + strlen(str) - 1; s >= str && *s == tail_char; s--)
data/sylfilter-0.8/libsylph/utils.c:466:12:  [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).
	s = str + strlen(str) - 1;
data/sylfilter-0.8/libsylph/utils.c:480: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).
	haystack_len = strlen(haystack);
data/sylfilter-0.8/libsylph/utils.c:481: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).
	needle_len   = strlen(needle);
data/sylfilter-0.8/libsylph/utils.c:545: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/sylfilter-0.8/libsylph/utils.c:546: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).
	s_len = strlen(suffix);
data/sylfilter-0.8/libsylph/utils.c:656:22:  [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).
		memmove(str, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:669:22:  [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).
		memmove(str, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:706:23:  [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).
	memmove(destp, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:729: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).
		memmove(destp, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:743: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).
		memmove(destp, srcp + 1, strlen(srcp));
data/sylfilter-0.8/libsylph/utils.c:802: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).
		memmove(destp, srcp + 1, strlen(srcp));
data/sylfilter-0.8/libsylph/utils.c:831:25:  [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).
			memmove(destp, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:884: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).
				memmove(destp, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:907: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).
		memmove(destp, srcp, strlen(srcp) + 1);
data/sylfilter-0.8/libsylph/utils.c:931:12:  [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 = str + strlen(str) - 1;
data/sylfilter-0.8/libsylph/utils.c:1216:22:  [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).
			memmove(p, p + 1, strlen(p));
data/sylfilter-0.8/libsylph/utils.c:1232: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).
			memmove(p, p + spc, strlen(p + spc) + 1);
data/sylfilter-0.8/libsylph/utils.c:1250:25:  [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).
				memmove(p, p + spc, strlen(p + spc) + 1);
data/sylfilter-0.8/libsylph/utils.c:1411: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(p);
data/sylfilter-0.8/libsylph/utils.c:1426: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).
	haystack_len = strlen(haystack);
data/sylfilter-0.8/libsylph/utils.c:1427: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).
	needle_len   = strlen(needle);
data/sylfilter-0.8/libsylph/utils.c:1463: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).
	haystack_len = strlen(haystack);
data/sylfilter-0.8/libsylph/utils.c:1464: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).
	needle_len   = strlen(needle);
data/sylfilter-0.8/libsylph/utils.c:1550:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy(new_string, str, len);
data/sylfilter-0.8/libsylph/utils.c:1597:25:  [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).
		guint delimiter_len = strlen(delim);
data/sylfilter-0.8/libsylph/utils.c:1619: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(str);
data/sylfilter-0.8/libsylph/utils.c:1681: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).
		len = strlen(str);
data/sylfilter-0.8/libsylph/utils.c:1721: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).
	last = group + strlen(group);
data/sylfilter-0.8/libsylph/utils.c:1722:31:  [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).
	abbrev_group = ap = g_malloc(strlen(group) + 1);
data/sylfilter-0.8/libsylph/utils.c:1748: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(str) <= len)
data/sylfilter-0.8/libsylph/utils.c:1775: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 ((new_len = strlen(str)) <= len)
data/sylfilter-0.8/libsylph/utils.c:1835:6:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
					strncpy(file, p, q - p + 1);
data/sylfilter-0.8/libsylph/utils.c:1998: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).
	outp = enc = g_malloc(strlen(filename) * 3 + 1);
data/sylfilter-0.8/libsylph/utils.c:2018: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).
	outp = enc = g_malloc(strlen(mailto) * 3 + 1);
data/sylfilter-0.8/libsylph/utils.c:2051:18:  [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).
		*to = g_malloc(strlen(tmp_mailto) + 1);
data/sylfilter-0.8/libsylph/utils.c:2076:19:  [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).
			*cc = g_malloc(strlen(value) + 1);
data/sylfilter-0.8/libsylph/utils.c:2079:20:  [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).
			*bcc = g_malloc(strlen(value) + 1);
data/sylfilter-0.8/libsylph/utils.c:2083: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).
			*subject = g_malloc(strlen(value) + 1);
data/sylfilter-0.8/libsylph/utils.c:2087: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).
			*inreplyto = g_malloc(strlen(value) + 1);
data/sylfilter-0.8/libsylph/utils.c:2091:21:  [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).
			*body = g_malloc(strlen(value) + 1);
data/sylfilter-0.8/libsylph/utils.c:2357: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).
		size += strlen(buf) + 2;
data/sylfilter-0.8/libsylph/utils.c:2603: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).
		len = strlen(buf);
data/sylfilter-0.8/libsylph/utils.c:2669: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).
		len = strlen(buf);
data/sylfilter-0.8/libsylph/utils.c:2785: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).
	out = outp = g_malloc(strlen(str) + 1);
data/sylfilter-0.8/libsylph/utils.c:2805: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).
	out = outp = g_malloc(strlen(str) + 1);
data/sylfilter-0.8/libsylph/utils.c:2812:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy(outp, p, last - p);
data/sylfilter-0.8/libsylph/utils.c:2816:5:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
				strncpy(outp, newline - 1, 2);
data/sylfilter-0.8/libsylph/utils.c:2824:20:  [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).
			for (last = p + strlen(p);
data/sylfilter-0.8/libsylph/utils.c:2827:4:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
			strncpy(outp, p, last - p);
data/sylfilter-0.8/libsylph/utils.c:2856:12:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				next = fgetc(fp);
data/sylfilter-0.8/libsylph/utils.c:2918:12:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
				next = fgetc(fp);
data/sylfilter-0.8/libsylph/utils.c:3154: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).
	tmplen = strlen(tmpdir);
data/sylfilter-0.8/libsylph/utils.c:3158:12:  [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).
	proglen = strlen(progname);
data/sylfilter-0.8/libsylph/utils.c:3199: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/sylfilter-0.8/libsylph/utils.c:3230: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/sylfilter-0.8/libsylph/utils.c:3312:2:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
	strncpy(zone3, zone, 3);
data/sylfilter-0.8/libsylph/utils.c:3324:13:  [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).
	} else if (strlen(zone3) == 3) {
data/sylfilter-0.8/libsylph/utils.c:3334:13:  [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).
	} else if (strlen(zone3) == 1) {
data/sylfilter-0.8/libsylph/utils.c:3455:2:  [1] (buffer) sscanf:
  It's unclear if the %s limit in the format string is small enough
  (CWE-120). Check that the limit is sufficiently small, or use a different
  input function.
	sscanf(asctime(lt), "%3s %3s %d %d:%d:%d %d\n",
data/sylfilter-0.8/libsylph/utils.h:112:22:  [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 ((__tmp = alloca(strlen(str) + 1)) == NULL) { \
data/sylfilter-0.8/libsylph/utils.h:129:3:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
		strncpy(__tmp, str, len); \
data/sylfilter-0.8/libsylph/utils.h:141: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).
	len1 = strlen(str1); \
data/sylfilter-0.8/libsylph/utils.h:142: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).
	len2 = strlen(str2); \

ANALYSIS SUMMARY:

Hits = 195
Lines analyzed = 15878 in approximately 0.34 seconds (46229 lines/second)
Physical Source Lines of Code (SLOC) = 12806
Hits@level = [0] 100 [1] 134 [2]  47 [3]   5 [4]   6 [5]   3
Hits@level+ = [0+] 295 [1+] 195 [2+]  61 [3+]  14 [4+]   9 [5+]   3
Hits/KSLOC@level+ = [0+] 23.0361 [1+] 15.2272 [2+] 4.76339 [3+] 1.09324 [4+] 0.702796 [5+] 0.234265
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.