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/gnome-desktop3-3.38.2/libgnome-desktop/default-input-sources.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg-crossfade.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg-crossfade.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg-slide-show.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg-slide-show.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-datetime-source.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-datetime-source.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail-script.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail-script.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-idle-monitor.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-idle-monitor.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-pnp-ids.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-pnp-ids.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr-config.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr-config.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr-debug.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr-output-info.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr-private.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-rr.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-systemd.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-systemd.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-wall-clock.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-wall-clock.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-xkb-info.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/meta-xrandr-shared.h Examining data/gnome-desktop3-3.38.2/libgnome-desktop/test-desktop-thumbnail.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/test-idle-monitor.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/test-languages.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/test-pnp-ids.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/test-wall-clock.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/test-xkb-info.c Examining data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-xkb-info.c Examining data/gnome-desktop3-3.38.2/tests/wall-clock.c Examining data/gnome-desktop3-3.38.2/tests/wallclock-reftest.c FINAL RESULTS: data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail-script.c:301:16: [4] (format) syslog: If syslog's format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant format string for syslog. {SCMP_SYS (syslog)}, data/gnome-desktop3-3.38.2/tests/wallclock-reftest.c:53:27: [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. result = g_strconcat (g_get_tmp_dir (), G_DIR_SEPARATOR_S, base, extension, NULL); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg-slide-show.c:293:47: [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). size->width = atoi (attr_values[i]); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg-slide-show.c:295:48: [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). size->height = atoi (attr_values[i]); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg.c:2042: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 (d, gradient, copy_bytes_per_row); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail.c:1113:3: [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 mtime_str[21]; data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail.c:1294:17: [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). thumb_mtime = atol (thumb_mtime_str); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:684:9: [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 first[8] = { 0 }; data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-bg.c:532:89: [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). md5_filename = g_compute_checksum_for_data (G_CHECKSUM_MD5, (const guchar *) filename, strlen (filename)); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail-script.c:179: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 (m) == 4 && m[0] == 'i' && m[2] == '8' && m[3] == '6') data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-desktop-thumbnail.c:743:54: [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_checksum_update (checksum, (const guchar *) uri, strlen (uri)); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:448: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). if (strlen (old_locale->name) > strlen (locale->name)) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:448: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). if (strlen (old_locale->name) > strlen (locale->name)) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:653: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). len = strlen (code); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:742: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). len = strlen (code); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:819: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). if (strlen (*attr_values) != 2) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:827: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). if (strlen (*attr_values) != 3) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:835: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). if (strlen (*attr_values) != 3) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:843: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). if (strlen (*attr_values) != 2 && data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:844: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). strlen (*attr_values) != 3) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:920: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). if (strlen (*attr_values) != 2) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:928: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). if (strlen (*attr_values) != 3) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-languages.c:936: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). if (strlen (*attr_values) != 3) { data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-systemd.c:150:45: [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). GString * const str = g_string_sized_new (strlen (in)); data/gnome-desktop3-3.38.2/libgnome-desktop/gnome-systemd.c:228: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). name_tmp = g_strndup (name, strlen (name) - 8); data/gnome-desktop3-3.38.2/tests/wallclock-reftest.c:48: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). base[strlen (base) - strlen (".ui")] = '\0'; data/gnome-desktop3-3.38.2/tests/wallclock-reftest.c:48: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). base[strlen (base) - strlen (".ui")] = '\0'; data/gnome-desktop3-3.38.2/tests/wallclock-reftest.c:67: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). g_string_append_len (file, test_file, strlen (test_file) - strlen (".ui")); data/gnome-desktop3-3.38.2/tests/wallclock-reftest.c:67: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). g_string_append_len (file, test_file, strlen (test_file) - strlen (".ui")); ANALYSIS SUMMARY: Hits = 29 Lines analyzed = 17335 in approximately 0.43 seconds (40278 lines/second) Physical Source Lines of Code (SLOC) = 12043 Hits@level = [0] 0 [1] 21 [2] 6 [3] 1 [4] 1 [5] 0 Hits@level+ = [0+] 29 [1+] 29 [2+] 8 [3+] 2 [4+] 1 [5+] 0 Hits/KSLOC@level+ = [0+] 2.40804 [1+] 2.40804 [2+] 0.664286 [3+] 0.166072 [4+] 0.0830358 [5+] 0 Dot directories skipped = 2 (--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.