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.