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/xfconf-4.14.4/common/xfconf-errors.c Examining data/xfconf-4.14.4/common/xfconf-marshal.c Examining data/xfconf-4.14.4/common/xfconf-marshal.h Examining data/xfconf-4.14.4/common/xfconf-gdbus-bindings.c Examining data/xfconf-4.14.4/common/xfconf-gdbus-bindings.h Examining data/xfconf-4.14.4/common/xfconf-gvaluefuncs.c Examining data/xfconf-4.14.4/common/xfconf-gvaluefuncs.h Examining data/xfconf-4.14.4/common/xfconf-alias.h Examining data/xfconf-4.14.4/common/xfconf-aliasdef.c Examining data/xfconf-4.14.4/common/xfconf-common-private.h Examining data/xfconf-4.14.4/common/xfconf-types.c Examining data/xfconf-4.14.4/xfconf/xfconf-binding.h Examining data/xfconf-4.14.4/xfconf/xfconf-channel.h Examining data/xfconf-4.14.4/xfconf/xfconf-errors.h Examining data/xfconf-4.14.4/xfconf/xfconf-types.h Examining data/xfconf-4.14.4/xfconf/xfconf.h Examining data/xfconf-4.14.4/xfconf/xfconf-binding.c Examining data/xfconf-4.14.4/xfconf/xfconf-cache.c Examining data/xfconf-4.14.4/xfconf/xfconf-cache.h Examining data/xfconf-4.14.4/xfconf/xfconf-channel.c Examining data/xfconf-4.14.4/xfconf/xfconf-private.h Examining data/xfconf-4.14.4/xfconf/xfconf.c Examining data/xfconf-4.14.4/xfconfd/main.c Examining data/xfconf-4.14.4/xfconfd/xfconf-backend-factory.c Examining data/xfconf-4.14.4/xfconfd/xfconf-backend-factory.h Examining data/xfconf-4.14.4/xfconfd/xfconf-backend.c Examining data/xfconf-4.14.4/xfconfd/xfconf-backend.h Examining data/xfconf-4.14.4/xfconfd/xfconf-daemon.c Examining data/xfconf-4.14.4/xfconfd/xfconf-daemon.h Examining data/xfconf-4.14.4/xfconfd/xfconf-locking-utils.c Examining data/xfconf-4.14.4/xfconfd/xfconf-locking-utils.h Examining data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c Examining data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.h Examining data/xfconf-4.14.4/xfconf-query/main.c Examining data/xfconf-4.14.4/xfconf-perl/xfconfperl.h Examining data/xfconf-4.14.4/tests/tests-common.h Examining data/xfconf-4.14.4/tests/set-properties/t-set-arrayv.c Examining data/xfconf-4.14.4/tests/set-properties/t-set-boolean.c Examining data/xfconf-4.14.4/tests/set-properties/t-set-double.c Examining data/xfconf-4.14.4/tests/set-properties/t-set-int.c Examining data/xfconf-4.14.4/tests/set-properties/t-set-string.c Examining data/xfconf-4.14.4/tests/set-properties/t-set-stringlist.c Examining data/xfconf-4.14.4/tests/set-properties/t-set-uint64.c Examining data/xfconf-4.14.4/tests/has-properties/t-has-arrayv.c Examining data/xfconf-4.14.4/tests/has-properties/t-has-boolean.c Examining data/xfconf-4.14.4/tests/has-properties/t-has-double.c Examining data/xfconf-4.14.4/tests/has-properties/t-has-string.c Examining data/xfconf-4.14.4/tests/has-properties/t-has-stringlist.c Examining data/xfconf-4.14.4/tests/has-properties/t-has-uint64.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-arrayv.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-boolean.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-double.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-int.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-string.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-stringlist.c Examining data/xfconf-4.14.4/tests/get-properties/t-get-uint64.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-arrayv.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-boolean.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-double.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-int.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-string.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-stringlist.c Examining data/xfconf-4.14.4/tests/reset-properties/t-reset-uint64.c Examining data/xfconf-4.14.4/tests/property-changed-signal/t-string-changed-signal.c Examining data/xfconf-4.14.4/tests/property-changed-signal/t-string-changed-signal-detailed.c Examining data/xfconf-4.14.4/tests/object-bindings/t-object-bindings.c Examining data/xfconf-4.14.4/gsettings-backend/xfconf-giomodule.c Examining data/xfconf-4.14.4/gsettings-backend/xfconf-gsettings-backend.c Examining data/xfconf-4.14.4/gsettings-backend/xfconf-gsettings-backend.h FINAL RESULTS: data/xfconf-4.14.4/common/xfconf-types.c:69:20: [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). dest = atoi(g_value_get_string(src_value)); data/xfconf-4.14.4/xfconf/xfconf.c:201:9: [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(ns->member_types, member_types, sizeof(GType) * n_members); data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:1555:9: [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(state->cur_text + cur_len, text, text_len); data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:1911: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). fp = fopen(filename_tmp, "w"); data/xfconf-4.14.4/xfconf-query/main.c:110: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). if ((gint) strlen(propname) > *size) data/xfconf-4.14.4/xfconf-query/main.c:111: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). *size = strlen(propname); data/xfconf-4.14.4/xfconf/xfconf-cache.c:1028:39: [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). rdata.property_base_len = strlen(rdata.property_base); data/xfconf-4.14.4/xfconf/xfconf-channel.c:400: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). property += strlen(channel->property_base); data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:699:55: [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 *channel_name = g_strndup(name, strlen(name) - 4); data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:1071:46: [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). maj_ver_len = p ? (gsize)(p - version) : strlen(version); data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:1072: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(maj_ver_len != strlen(FILE_VERSION_MAJOR) data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:1553: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). gint cur_len = strlen(state->cur_text); data/xfconf-4.14.4/xfconfd/xfconf-backend-perchannel-xml.c:1838:53: [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). escaped_name = g_markup_escape_text(prop->name, strlen(prop->name)); ANALYSIS SUMMARY: Hits = 13 Lines analyzed = 16411 in approximately 0.36 seconds (45734 lines/second) Physical Source Lines of Code (SLOC) = 10827 Hits@level = [0] 2 [1] 9 [2] 4 [3] 0 [4] 0 [5] 0 Hits@level+ = [0+] 15 [1+] 13 [2+] 4 [3+] 0 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 1.38543 [1+] 1.2007 [2+] 0.369447 [3+] 0 [4+] 0 [5+] 0 Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.