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/appstream-0.12.11/tools/ascli-utils.c
Examining data/appstream-0.12.11/tools/ascli-actions-misc.h
Examining data/appstream-0.12.11/tools/ascli-actions-validate.h
Examining data/appstream-0.12.11/tools/ascli-actions-misc.c
Examining data/appstream-0.12.11/tools/ascli-actions-pkgmgr.h
Examining data/appstream-0.12.11/tools/appstream-cli.c
Examining data/appstream-0.12.11/tools/ascli-actions-mdata.c
Examining data/appstream-0.12.11/tools/ascli-actions-mdata.h
Examining data/appstream-0.12.11/tools/ascli-utils.h
Examining data/appstream-0.12.11/tools/ascli-actions-validate.c
Examining data/appstream-0.12.11/tools/ascli-actions-pkgmgr.c
Examining data/appstream-0.12.11/qt/provided.cpp
Examining data/appstream-0.12.11/qt/video.cpp
Examining data/appstream-0.12.11/qt/spdx.cpp
Examining data/appstream-0.12.11/qt/category.h
Examining data/appstream-0.12.11/qt/chelpers.h
Examining data/appstream-0.12.11/qt/suggested.cpp
Examining data/appstream-0.12.11/qt/image.cpp
Examining data/appstream-0.12.11/qt/appstreamqt_export.h
Examining data/appstream-0.12.11/qt/contentrating.h
Examining data/appstream-0.12.11/qt/icon.cpp
Examining data/appstream-0.12.11/qt/bundle.cpp
Examining data/appstream-0.12.11/qt/icon.h
Examining data/appstream-0.12.11/qt/translation.cpp
Examining data/appstream-0.12.11/qt/suggested.h
Examining data/appstream-0.12.11/qt/bundle.h
Examining data/appstream-0.12.11/qt/pool.cpp
Examining data/appstream-0.12.11/qt/pool.h
Examining data/appstream-0.12.11/qt/launchable.cpp
Examining data/appstream-0.12.11/qt/translation.h
Examining data/appstream-0.12.11/qt/category.cpp
Examining data/appstream-0.12.11/qt/launchable.h
Examining data/appstream-0.12.11/qt/utils.h
Examining data/appstream-0.12.11/qt/component.h
Examining data/appstream-0.12.11/qt/metadata.h
Examining data/appstream-0.12.11/qt/component.cpp
Examining data/appstream-0.12.11/qt/contentrating.cpp
Examining data/appstream-0.12.11/qt/release.cpp
Examining data/appstream-0.12.11/qt/video.h
Examining data/appstream-0.12.11/qt/utils.cpp
Examining data/appstream-0.12.11/qt/screenshot.cpp
Examining data/appstream-0.12.11/qt/spdx.h
Examining data/appstream-0.12.11/qt/image.h
Examining data/appstream-0.12.11/qt/tests/asqt-pool-test.cpp
Examining data/appstream-0.12.11/qt/screenshot.h
Examining data/appstream-0.12.11/qt/provided.h
Examining data/appstream-0.12.11/qt/release.h
Examining data/appstream-0.12.11/qt/metadata.cpp
Examining data/appstream-0.12.11/src/as-video.c
Examining data/appstream-0.12.11/src/as-metadata.c
Examining data/appstream-0.12.11/src/as-context.c
Examining data/appstream-0.12.11/src/as-stemmer.c
Examining data/appstream-0.12.11/src/as-checksum.h
Examining data/appstream-0.12.11/src/as-image.c
Examining data/appstream-0.12.11/src/as-agreement.c
Examining data/appstream-0.12.11/src/as-spdx.c
Examining data/appstream-0.12.11/src/as-validator-issue-tag.h
Examining data/appstream-0.12.11/src/as-relation-private.h
Examining data/appstream-0.12.11/src/as-utils.h
Examining data/appstream-0.12.11/src/as-xml.h
Examining data/appstream-0.12.11/src/as-screenshot.h
Examining data/appstream-0.12.11/src/as-video-private.h
Examining data/appstream-0.12.11/src/as-news-convert.h
Examining data/appstream-0.12.11/src/as-icon-private.h
Examining data/appstream-0.12.11/src/as-pool-private.h
Examining data/appstream-0.12.11/src/as-distro-extras.h
Examining data/appstream-0.12.11/src/as-distro-details-private.h
Examining data/appstream-0.12.11/src/as-component-private.h
Examining data/appstream-0.12.11/src/as-release.c
Examining data/appstream-0.12.11/src/as-validator-issue.c
Examining data/appstream-0.12.11/src/as-content-rating-private.h
Examining data/appstream-0.12.11/src/as-validator-issue.h
Examining data/appstream-0.12.11/src/as-video.h
Examining data/appstream-0.12.11/src/as-utils.c
Examining data/appstream-0.12.11/src/as-launchable-private.h
Examining data/appstream-0.12.11/src/as-icon.h
Examining data/appstream-0.12.11/src/as-spdx.h
Examining data/appstream-0.12.11/src/as-cache.c
Examining data/appstream-0.12.11/src/as-agreement-private.h
Examining data/appstream-0.12.11/src/as-category.c
Examining data/appstream-0.12.11/src/as-content-rating.h
Examining data/appstream-0.12.11/src/as-utils-private.h
Examining data/appstream-0.12.11/src/as-checksum-private.h
Examining data/appstream-0.12.11/src/as-agreement-section.c
Examining data/appstream-0.12.11/src/as-icon.c
Examining data/appstream-0.12.11/src/as-provided.h
Examining data/appstream-0.12.11/src/as-bundle.h
Examining data/appstream-0.12.11/src/as-checksum.c
Examining data/appstream-0.12.11/src/as-image-private.h
Examining data/appstream-0.12.11/src/as-validator.c
Examining data/appstream-0.12.11/src/as-yaml.c
Examining data/appstream-0.12.11/src/as-category.h
Examining data/appstream-0.12.11/src/as-suggested.c
Examining data/appstream-0.12.11/src/as-bundle-private.h
Examining data/appstream-0.12.11/src/as-bundle.c
Examining data/appstream-0.12.11/src/as-enums.h
Examining data/appstream-0.12.11/src/as-suggested-private.h
Examining data/appstream-0.12.11/src/as-metadata.h
Examining data/appstream-0.12.11/src/as-enums.c
Examining data/appstream-0.12.11/src/as-component.h
Examining data/appstream-0.12.11/src/as-translation-private.h
Examining data/appstream-0.12.11/src/as-stemmer.h
Examining data/appstream-0.12.11/src/as-release-private.h
Examining data/appstream-0.12.11/src/as-relation.c
Examining data/appstream-0.12.11/src/as-validator.h
Examining data/appstream-0.12.11/src/as-relation.h
Examining data/appstream-0.12.11/src/as-translation.c
Examining data/appstream-0.12.11/src/as-desktop-entry.c
Examining data/appstream-0.12.11/src/as-artifact.h
Examining data/appstream-0.12.11/src/as-issue-private.h
Examining data/appstream-0.12.11/src/as-release.h
Examining data/appstream-0.12.11/src/as-component.c
Examining data/appstream-0.12.11/src/as-provided-private.h
Examining data/appstream-0.12.11/src/as-context-private.h
Examining data/appstream-0.12.11/src/as-cache.h
Examining data/appstream-0.12.11/src/as-distro-details.h
Examining data/appstream-0.12.11/src/as-screenshot.c
Examining data/appstream-0.12.11/src/as-pool.h
Examining data/appstream-0.12.11/src/as-image.h
Examining data/appstream-0.12.11/src/as-distro-details.c
Examining data/appstream-0.12.11/src/as-xml.c
Examining data/appstream-0.12.11/src/as-pool.c
Examining data/appstream-0.12.11/src/as-content-rating.c
Examining data/appstream-0.12.11/src/as-artifact.c
Examining data/appstream-0.12.11/src/as-artifact-private.h
Examining data/appstream-0.12.11/src/as-agreement-section.h
Examining data/appstream-0.12.11/src/as-tag.c
Examining data/appstream-0.12.11/src/appstream.h
Examining data/appstream-0.12.11/src/as-translation.h
Examining data/appstream-0.12.11/src/as-issue.h
Examining data/appstream-0.12.11/src/as-issue.c
Examining data/appstream-0.12.11/src/as-launchable.c
Examining data/appstream-0.12.11/src/as-screenshot-private.h
Examining data/appstream-0.12.11/src/as-desktop-entry.h
Examining data/appstream-0.12.11/src/as-distro-extras.c
Examining data/appstream-0.12.11/src/as-agreement-section-private.h
Examining data/appstream-0.12.11/src/as-suggested.h
Examining data/appstream-0.12.11/src/as-agreement.h
Examining data/appstream-0.12.11/src/as-settings-private.h
Examining data/appstream-0.12.11/src/as-tag.h
Examining data/appstream-0.12.11/src/as-launchable.h
Examining data/appstream-0.12.11/src/as-yaml.h
Examining data/appstream-0.12.11/src/as-news-convert.c
Examining data/appstream-0.12.11/src/as-context.h
Examining data/appstream-0.12.11/src/as-provided.c
Examining data/appstream-0.12.11/tests/test-basics.c
Examining data/appstream-0.12.11/tests/as-test-utils.c
Examining data/appstream-0.12.11/tests/test-pool.c
Examining data/appstream-0.12.11/tests/test-xmldata.c
Examining data/appstream-0.12.11/tests/test-yamldata.c
Examining data/appstream-0.12.11/tests/test-validate.c
Examining data/appstream-0.12.11/tests/test-performance.c
Examining data/appstream-0.12.11/tests/as-test-utils.h
Examining data/appstream-0.12.11/tests/test-misc.c

FINAL RESULTS:

data/appstream-0.12.11/qt/chelpers.h:73:9:  [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(array[i], string.constData());
data/appstream-0.12.11/src/as-utils.c:1060:2:  [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 (str1, a);
data/appstream-0.12.11/src/as-utils.c:1061:2:  [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 (str2, b);
data/appstream-0.12.11/tools/ascli-actions-pkgmgr.c:65:8:  [4] (shell) execv:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	ret = execv (exe, cmd);
data/appstream-0.12.11/src/as-cache.c:768:19:  [3] (buffer) g_get_tmp_dir:
  This function is synonymous with 'getenv("TMP")';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.
			volatile_dir = g_get_tmp_dir ();
data/appstream-0.12.11/src/as-cache.c:772:20:  [3] (buffer) g_get_tmp_dir:
  This function is synonymous with 'getenv("TMP")';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.
				volatile_dir = g_get_tmp_dir ();
data/appstream-0.12.11/tests/as-test-utils.c:43:53:  [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.
	tmp_fname1 = g_strdup_printf ("/tmp/as-diff-%i_a", g_random_int ());
data/appstream-0.12.11/tests/as-test-utils.c:44:53:  [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.
	tmp_fname2 = g_strdup_printf ("/tmp/as-diff-%i_b", g_random_int ());
data/appstream-0.12.11/src/as-cache.c:1058: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 ((*list) + (*list_len) - AS_CACHE_CHECKSUM_LEN, new_hash, AS_CACHE_CHECKSUM_LEN);
data/appstream-0.12.11/src/as-cache.c:1091: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 ((*dict) + insert_idx, hash, AS_CACHE_CHECKSUM_LEN);
data/appstream-0.12.11/src/as-cache.c:1092: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 ((*dict) + insert_idx + AS_CACHE_CHECKSUM_LEN, &match_val, sizeof(AsTokenType));
data/appstream-0.12.11/src/as-news-convert.c:515:30:  [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).
	dt = g_date_time_new_local (atoi (release_split[0]),
data/appstream-0.12.11/src/as-news-convert.c:516: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).
				    atoi (release_split[1]),
data/appstream-0.12.11/src/as-news-convert.c:517: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).
				    atoi (release_split[2]),
data/appstream-0.12.11/src/as-release.c:901:21:  [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).
		priv->timestamp = atol (prop);
data/appstream-0.12.11/src/as-release.c:1093:22:  [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).
			priv->timestamp = atol (value);
data/appstream-0.12.11/src/as-utils.c:547: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 (tmp, replace, replace_len);
data/appstream-0.12.11/src/as-utils.c:555: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 (string->str + search_idx, replace, replace_len);
data/appstream-0.12.11/src/as-utils.c:558: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 (tmp, replace, replace_len);
data/appstream-0.12.11/src/as-utils.c:633:9:  [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).
	fsrc = fopen (source, "rb");
data/appstream-0.12.11/src/as-utils.c:642:10:  [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).
	fdest = fopen (destination, "wb");
data/appstream-0.12.11/src/as-cache.c:312: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).
		len = sizeof(gchar) * strlen (data);
data/appstream-0.12.11/src/as-cache.c:362: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).
	key_len = sizeof(gchar) * strlen (key);
data/appstream-0.12.11/src/as-cache.c:537: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).
	key_len = sizeof(gchar) * strlen (key);
data/appstream-0.12.11/src/as-cache.c:1189: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).
		token_len = sizeof(gchar) * strlen (token_str);
data/appstream-0.12.11/src/as-cache.c:2212: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).
				gsize term_len = strlen (terms[i]);
data/appstream-0.12.11/src/as-component.c:2419: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).
		if (strlen (value) < 3)
data/appstream-0.12.11/src/as-desktop-entry.c:80: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).
		locale[strlen (locale)-6] = '\0';
data/appstream-0.12.11/src/as-desktop-entry.c:232: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).
				id_raw[strlen (id_raw)-8] = '\0';
data/appstream-0.12.11/src/as-desktop-entry.c:267: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).
				val[strlen (val) -1] = '\0';
data/appstream-0.12.11/src/as-distro-details.c:148: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).
				tmp = g_strndup (dvalue + 1, strlen(dvalue) - 2);
data/appstream-0.12.11/src/as-distro-extras.c:44: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 YAML_SEPARATOR_LEN strlen(YAML_SEPARATOR)
data/appstream-0.12.11/src/as-distro-extras.c:135: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).
	str = g_strndup (start, strlen(start) - (end ? strlen(end) : 0));
data/appstream-0.12.11/src/as-distro-extras.c:135: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).
	str = g_strndup (start, strlen(start) - (end ? strlen(end) : 0));
data/appstream-0.12.11/src/as-distro-extras.c:152:33:  [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).
			origin = g_strndup (tmp + 1, strlen (tmp) - 2);
data/appstream-0.12.11/src/as-distro-extras.c:312:41:  [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).
			apt_basename = g_strndup (fbasename, strlen (fbasename) - strlen (g_strrstr (fbasename, "_") + 1));
data/appstream-0.12.11/src/as-distro-extras.c:312:62:  [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).
			apt_basename = g_strndup (fbasename, strlen (fbasename) - strlen (g_strrstr (fbasename, "_") + 1));
data/appstream-0.12.11/src/as-distro-extras.c:396:43:  [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_baseprefix = g_strndup (fbasename, strlen (fbasename) - strlen (g_strrstr (fbasename, "_") + 1));
data/appstream-0.12.11/src/as-distro-extras.c:396:64:  [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_baseprefix = g_strndup (fbasename, strlen (fbasename) - strlen (g_strrstr (fbasename, "_") + 1));
data/appstream-0.12.11/src/as-image.c:453:32:  [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).
			url = g_strdup (priv->url + strlen (as_context_get_media_baseurl (ctx)));
data/appstream-0.12.11/src/as-metadata.c:237:64:  [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).
	yaml_parser_set_input_string (&parser, (unsigned char*) data, strlen (data));
data/appstream-0.12.11/src/as-metadata.c:611:51:  [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 (!g_output_stream_write_all (out2, metadata, strlen (metadata),
data/appstream-0.12.11/src/as-news-convert.c:152:69:  [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).
	yaml_parser_set_input_string (&parser, (unsigned char*) yaml_data, strlen (yaml_data));
data/appstream-0.12.11/src/as-pool.c:1038: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).
				mi_cid[strlen (mi_cid) - 13] = '\0';
data/appstream-0.12.11/src/as-pool.c:1041: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).
				mi_cid[strlen (mi_cid) - 12] = '\0';
data/appstream-0.12.11/src/as-pool.c:1746: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).
		if (strlen (tmp) <= 1) {
data/appstream-0.12.11/src/as-relation.c:694: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 (ver_str) <= 2)
data/appstream-0.12.11/src/as-spdx.c:88:50:  [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).
		g_autofree gchar *license_id = g_strndup (tmp, strlen (tmp) - 1);
data/appstream-0.12.11/src/as-spdx.c:505: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).
	license_len = strlen (license);
data/appstream-0.12.11/src/as-spdx.c:509: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).
			guint old_len = strlen (convert[j].old);
data/appstream-0.12.11/src/as-stemmer.c:131: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).
						     strlen (term)));
data/appstream-0.12.11/src/as-tag.c:72:36:  [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).
	ky = _as_xml_tag_from_gperf (tag, strlen (tag));
data/appstream-0.12.11/src/as-tag.c:100:37:  [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).
	ky = _as_yaml_tag_from_gperf (tag, strlen (tag));
data/appstream-0.12.11/src/as-utils.c:531: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).
	search_len = strlen (search);
data/appstream-0.12.11/src/as-utils.c:532: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).
	replace_len = strlen (replace);
data/appstream-0.12.11/src/as-utils.c:619:2:  [1] (access) umask:
  Ensure that umask is given most restrictive possible setting (e.g., 066 or
  077) (CWE-732).
	umask (0022);
data/appstream-0.12.11/src/as-utils.c:653:7:  [1] (buffer) fgetc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		a = fgetc (fsrc);
data/appstream-0.12.11/src/as-utils.c:1054: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).
	gchar abuf[strlen(a)+1], bbuf[strlen(b)+1];
data/appstream-0.12.11/src/as-utils.c:1054:32:  [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 abuf[strlen(a)+1], bbuf[strlen(b)+1];
data/appstream-0.12.11/src/as-utils.c:1126: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).
			onelen = strlen (one);
data/appstream-0.12.11/src/as-utils.c:1127: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).
			twolen = strlen (two);
data/appstream-0.12.11/src/as-utils.c:1458: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 (string);
data/appstream-0.12.11/src/as-utils.c:1473: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 (string, start, strlen ((gchar *) start) + 1);
data/appstream-0.12.11/src/as-validator.c:642: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).
				if ((first_paragraph) && (strlen (node_content) < 80)) {
data/appstream-0.12.11/src/as-validator.c:1654: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).
			if ((scr_caption != NULL) && (strlen (scr_caption) > 80)) {
data/appstream-0.12.11/src/as-video.c:512:32:  [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).
			url = g_strdup (priv->url + strlen (as_context_get_media_baseurl (ctx)));
data/appstream-0.12.11/src/as-xml.c:280: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).
	helper->doc = xmlReadMemory (xmldata, strlen (xmldata),
data/appstream-0.12.11/src/as-xml.c:793: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 (data);
data/appstream-0.12.11/src/as-yaml.c:242: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 (value),
data/appstream-0.12.11/src/as-yaml.c:264: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 (value),
data/appstream-0.12.11/src/as-yaml.c:287: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 (value_str),
data/appstream-0.12.11/src/as-yaml.c:317: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 (key),
data/appstream-0.12.11/src/as-yaml.c:365: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 (time_str),
data/appstream-0.12.11/src/as-yaml.c:391: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 (value),
data/appstream-0.12.11/src/as-yaml.c:416: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 (value),
data/appstream-0.12.11/tools/ascli-utils.c:51: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).
	res = g_string_sized_new (strlen (str));
data/appstream-0.12.11/tools/ascli-utils.c:104: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 (val) > 120) {

ANALYSIS SUMMARY:

Hits = 77
Lines analyzed = 50191 in approximately 1.17 seconds (42986 lines/second)
Physical Source Lines of Code (SLOC) = 30689
Hits@level = [0]   4 [1]  56 [2]  13 [3]   4 [4]   4 [5]   0
Hits@level+ = [0+]  81 [1+]  77 [2+]  21 [3+]   8 [4+]   4 [5+]   0
Hits/KSLOC@level+ = [0+] 2.63938 [1+] 2.50904 [2+] 0.684284 [3+] 0.26068 [4+] 0.13034 [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.