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/xfce4-panel-4.15.5/panel/panel-plugin-external.h Examining data/xfce4-panel-4.15.5/panel/panel-itembar.h Examining data/xfce4-panel-4.15.5/panel/panel-window.h Examining data/xfce4-panel-4.15.5/panel/panel-dialogs.c Examining data/xfce4-panel-4.15.5/panel/panel-item-dialog.h Examining data/xfce4-panel-4.15.5/panel/panel-marshal.c Examining data/xfce4-panel-4.15.5/panel/panel-dialogs.h Examining data/xfce4-panel-4.15.5/panel/panel-dbus-service.c Examining data/xfce4-panel-4.15.5/panel/panel-plugin-external-wrapper-exported.c Examining data/xfce4-panel-4.15.5/panel/panel-module-factory.c Examining data/xfce4-panel-4.15.5/panel/panel-preferences-dialog.h Examining data/xfce4-panel-4.15.5/panel/panel-application.h Examining data/xfce4-panel-4.15.5/panel/panel-base-window.h Examining data/xfce4-panel-4.15.5/panel/panel-tic-tac-toe.c Examining data/xfce4-panel-4.15.5/panel/panel-preferences-dialog-ui.h Examining data/xfce4-panel-4.15.5/panel/panel-plugin-external-wrapper-exported.h Examining data/xfce4-panel-4.15.5/panel/panel-item-dialog.c Examining data/xfce4-panel-4.15.5/panel/panel-module.h Examining data/xfce4-panel-4.15.5/panel/panel-plugin-external.c Examining data/xfce4-panel-4.15.5/panel/panel-application.c Examining data/xfce4-panel-4.15.5/panel/panel-itembar.c Examining data/xfce4-panel-4.15.5/panel/panel-dbus-service.h Examining data/xfce4-panel-4.15.5/panel/panel-preferences-dialog.c Examining data/xfce4-panel-4.15.5/panel/panel-tic-tac-toe.h Examining data/xfce4-panel-4.15.5/panel/panel-dbus-client.h Examining data/xfce4-panel-4.15.5/panel/panel-gdbus-exported-service.c Examining data/xfce4-panel-4.15.5/panel/panel-module-factory.h Examining data/xfce4-panel-4.15.5/panel/panel-marshal.h Examining data/xfce4-panel-4.15.5/panel/panel-base-window.c Examining data/xfce4-panel-4.15.5/panel/panel-window.c Examining data/xfce4-panel-4.15.5/panel/panel-dbus-client.c Examining data/xfce4-panel-4.15.5/panel/panel-gdbus-exported-service.h Examining data/xfce4-panel-4.15.5/panel/panel-plugin-external-wrapper.c Examining data/xfce4-panel-4.15.5/panel/main.c Examining data/xfce4-panel-4.15.5/panel/panel-plugin-external-wrapper.h Examining data/xfce4-panel-4.15.5/panel/panel-module.c Examining data/xfce4-panel-4.15.5/common/panel-debug.c Examining data/xfce4-panel-4.15.5/common/panel-xfconf.c Examining data/xfce4-panel-4.15.5/common/panel-private.h Examining data/xfce4-panel-4.15.5/common/panel-debug.h Examining data/xfce4-panel-4.15.5/common/panel-xfconf.h Examining data/xfce4-panel-4.15.5/common/panel-utils.h Examining data/xfce4-panel-4.15.5/common/panel-dbus.h Examining data/xfce4-panel-4.15.5/common/panel-utils.c Examining data/xfce4-panel-4.15.5/plugins/actions/actions.h Examining data/xfce4-panel-4.15.5/plugins/actions/actions-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/actions/actions.c Examining data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.c Examining data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.h Examining data/xfce4-panel-4.15.5/plugins/windowmenu/windowmenu.c Examining data/xfce4-panel-4.15.5/plugins/windowmenu/windowmenu.h Examining data/xfce4-panel-4.15.5/plugins/windowmenu/windowmenu-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/showdesktop/showdesktop.h Examining data/xfce4-panel-4.15.5/plugins/showdesktop/showdesktop.c Examining data/xfce4-panel-4.15.5/plugins/systray/systray-box.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-icon-box.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-item.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-config.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray-manager.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray-socket.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-button.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-util.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-item.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray-box.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-icon-box.c Examining data/xfce4-panel-4.15.5/plugins/systray/systray-marshal.c Examining data/xfce4-panel-4.15.5/plugins/systray/systray.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-dialog.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-button.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-config.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-backend.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-box.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-dialog-ui.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-box.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-watcher.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray-socket.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray-manager.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-plugin.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-plugin.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-dialog.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-util.c Examining data/xfce4-panel-4.15.5/plugins/systray/sn-backend.h Examining data/xfce4-panel-4.15.5/plugins/systray/systray-marshal.h Examining data/xfce4-panel-4.15.5/plugins/systray/sn-watcher.c Examining data/xfce4-panel-4.15.5/plugins/pager/pager-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/pager/pager-buttons.c Examining data/xfce4-panel-4.15.5/plugins/pager/pager-buttons.h Examining data/xfce4-panel-4.15.5/plugins/pager/pager.h Examining data/xfce4-panel-4.15.5/plugins/pager/pager.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock-lcd.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-digital.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock-binary.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-time.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-fuzzy.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-digital.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-fuzzy.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock-analog.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-analog.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock-binary.c Examining data/xfce4-panel-4.15.5/plugins/clock/clock-lcd.h Examining data/xfce4-panel-4.15.5/plugins/clock/clock-time.c Examining data/xfce4-panel-4.15.5/plugins/applicationsmenu/applicationsmenu.c Examining data/xfce4-panel-4.15.5/plugins/applicationsmenu/applicationsmenu.h Examining data/xfce4-panel-4.15.5/plugins/applicationsmenu/applicationsmenu-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/tasklist/tasklist-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/tasklist/tasklist-widget.c Examining data/xfce4-panel-4.15.5/plugins/tasklist/tasklist.c Examining data/xfce4-panel-4.15.5/plugins/tasklist/tasklist-widget.h Examining data/xfce4-panel-4.15.5/plugins/separator/separator-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/separator/separator.h Examining data/xfce4-panel-4.15.5/plugins/separator/separator.c Examining data/xfce4-panel-4.15.5/plugins/launcher/launcher.h Examining data/xfce4-panel-4.15.5/plugins/launcher/launcher-dialog_ui.h Examining data/xfce4-panel-4.15.5/plugins/launcher/launcher-dialog.c Examining data/xfce4-panel-4.15.5/plugins/launcher/launcher-dialog.h Examining data/xfce4-panel-4.15.5/plugins/launcher/launcher.c Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-alias.h Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-macros.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-config.h Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-arrow-button.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-image.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-enum-types.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-plugin.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-marshal.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-marshal.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-image.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-convenience.c Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-aliasdef.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-arrow-button.h Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-plugin-provider.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-config.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-convenience.h Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-enums.h Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-plugin-provider.c Examining data/xfce4-panel-4.15.5/libxfce4panel/xfce-panel-plugin.c Examining data/xfce4-panel-4.15.5/libxfce4panel/libxfce4panel-enum-types.h Examining data/xfce4-panel-4.15.5/wrapper/wrapper-plug.c Examining data/xfce4-panel-4.15.5/wrapper/wrapper-plug.h Examining data/xfce4-panel-4.15.5/wrapper/wrapper-module.h Examining data/xfce4-panel-4.15.5/wrapper/wrapper-module.c Examining data/xfce4-panel-4.15.5/wrapper/main.c Examining data/xfce4-panel-4.15.5/migrate/migrate-config.h Examining data/xfce4-panel-4.15.5/migrate/migrate-config.c Examining data/xfce4-panel-4.15.5/migrate/migrate-default.c Examining data/xfce4-panel-4.15.5/migrate/main.c Examining data/xfce4-panel-4.15.5/migrate/migrate-default.h FINAL RESULTS: data/xfce4-panel-4.15.5/panel/main.c:179:26: [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. path, g_get_tmp_dir ()); data/xfce4-panel-4.15.5/panel/panel-plugin-external.c:562:52: [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. program, g_get_tmp_dir (), timestamp / G_USEC_PER_SEC, data/xfce4-panel-4.15.5/panel/panel-plugin-external.c:575:52: [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. program, g_get_tmp_dir (), timestamp / G_USEC_PER_SEC, data/xfce4-panel-4.15.5/panel/panel-tic-tac-toe.c:309:14: [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. seed = g_random_int_range (0, n_moves); data/xfce4-panel-4.15.5/panel/panel-tic-tac-toe.c:642:7: [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. if (g_random_int_range (0, 2) == 0) data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.c:292:16: [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. path = g_get_home_dir (); data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.c:388:56: [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. g_object_set (G_OBJECT (plugin), "base-directory", g_get_home_dir (), NULL); data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.c:517:69: [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. gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (object), g_get_home_dir ()); data/xfce4-panel-4.15.5/panel/main.c:108:49: [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). opt_preferences = value != NULL ? MAX (0, atoi (value)) : 0; data/xfce4-panel-4.15.5/panel/main.c:113: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). opt_add_items = value != NULL ? MAX (0, atoi (value)) : 0; data/xfce4-panel-4.15.5/plugins/actions/actions.c:1291:15: [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[16]; data/xfce4-panel-4.15.5/plugins/systray/systray-manager.c:597:11: [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 ((message->string + message->length - message->remaining_length), &xev->data, length); data/xfce4-panel-4.15.5/panel/panel-item-dialog.c:570: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). (guchar *) internal_name, strlen (internal_name)); data/xfce4-panel-4.15.5/plugins/clock/clock-fuzzy.c:345: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). g_string_append (string, p + strlen (pattern)); data/xfce4-panel-4.15.5/plugins/clock/clock.c:970: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). gsize dirlen = strlen (ZONEINFO_DIR); data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.c:891: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(text) > 0) data/xfce4-panel-4.15.5/plugins/directorymenu/directorymenu.c:979: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). if (strlen(filename) > 0) data/xfce4-panel-4.15.5/plugins/systray/sn-backend.c:328: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). if (new_owner == NULL || strlen (new_owner) == 0) data/xfce4-panel-4.15.5/plugins/systray/sn-item.c:416: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). finish = new_owner == NULL || strlen (new_owner) == 0; data/xfce4-panel-4.15.5/plugins/systray/sn-item.c:733:38: [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). item->entry = (val) != NULL && strlen (val) > 0 \ ANALYSIS SUMMARY: Hits = 20 Lines analyzed = 66015 in approximately 1.45 seconds (45547 lines/second) Physical Source Lines of Code (SLOC) = 46004 Hits@level = [0] 4 [1] 8 [2] 4 [3] 8 [4] 0 [5] 0 Hits@level+ = [0+] 24 [1+] 20 [2+] 12 [3+] 8 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.521694 [1+] 0.434745 [2+] 0.260847 [3+] 0.173898 [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.