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/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-key-grabber.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-private.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-app.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-client.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/acme-volume.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-key-grabber.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-client-xsmp.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-session.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/acme-volume-alsa.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-cursor-tracker.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-rotate-controller.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-swipe-controller.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-zoom-controller.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-zoom-controller.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-swipe-controller.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-touch-controller.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-long-press-controller.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-event-controllers.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-rotate-controller.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-long-press-controller.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-enum-types.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-enum-types.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-event-controller.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-event-controller.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/event-controller/sugar-touch-controller.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-app.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-fatattr.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggdesktopfile.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-clipboard.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-gesture-grabber.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-marshal.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-grid.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-fatattr.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-session.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-grid.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/acme-volume-alsa.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-client.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-client-xsmp.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/acme-volume.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-marshal.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-cursor-tracker.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggdesktopfile.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-clipboard.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-wm.h Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-gesture-grabber.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient.c Examining data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-wm.c FINAL RESULTS: data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:451:7: [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 (accelerator + l, text_release); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:456:7: [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 (accelerator + l, text_shift); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:461:7: [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 (accelerator + l, text_control); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:466:7: [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 (accelerator + l, text_mod1); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:471:7: [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 (accelerator + l, text_mod2); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:476:7: [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 (accelerator + l, text_mod3); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:481:7: [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 (accelerator + l, text_mod4); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:486:7: [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 (accelerator + l, text_mod5); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:491:7: [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 (accelerator + l, text_meta); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:496:7: [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 (accelerator + l, text_hyper); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:501:7: [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 (accelerator + l, text_super); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:505:3: [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 (accelerator + l, keyval_name); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:266:15: [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. rand1 = g_random_int (); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:267:15: [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. rand2 = g_random_int (); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:334:5: [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 keystring[5]; data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:338:5: [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 (keystring, accelerator, 4); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c:149: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 error_string_ret[256]; data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c:150: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 pid_str[64]; data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c:800:12: [2] (misc) open: 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). fd = open (state_file_path, O_WRONLY | O_CREAT | O_EXCL, 0644); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-app.c:329: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 *env[2] = { NULL, NULL }; data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-client-xsmp.c:648: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 buf[32]; data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:90: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 error[256]; data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:405:8: [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, "r+"); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:448:12: [2] (misc) open: 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). fd = open (filename, O_CREAT | O_WRONLY, 0600); data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-fatattr.c:41:10: [2] (misc) open: 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). fd = open(file, O_RDONLY | O_NOATIME); data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-gesture-grabber.c:178:18: [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. unsigned char mask[4] = { 0 }; data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:235: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 (accelerator); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggaccelerators.c:443: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). l += strlen (keyval_name); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c:1078:19: [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). pv.length = strlen (value); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c:1111:19: [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). pv.length = strlen (values->pdata[i]); data/sugar-toolkit-gtk3-0.117/src/sugar3/eggsmclient-xsmp.c:1140: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). prop->vals[0].length = strlen (value); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:124:17: [1] (access) umask: Ensure that umask is given most restrictive possible setting (e.g., 066 or 077) (CWE-732). saved_umask = umask (0); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:125:3: [1] (access) umask: Ensure that umask is given most restrictive possible setting (e.g., 066 or 077) (CWE-732). umask (saved_umask); data/sugar-toolkit-gtk3-0.117/src/sugar3/gsm-xsmp.c:129:3: [1] (access) umask: Ensure that umask is given most restrictive possible setting (e.g., 066 or 077) (CWE-732). umask (saved_umask); data/sugar-toolkit-gtk3-0.117/src/sugar3/sugar-wm.c:61: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). (unsigned char *)value, strlen(value)); ANALYSIS SUMMARY: Hits = 35 Lines analyzed = 12160 in approximately 0.30 seconds (40260 lines/second) Physical Source Lines of Code (SLOC) = 8194 Hits@level = [0] 2 [1] 9 [2] 12 [3] 2 [4] 12 [5] 0 Hits@level+ = [0+] 37 [1+] 35 [2+] 26 [3+] 14 [4+] 12 [5+] 0 Hits/KSLOC@level+ = [0+] 4.5155 [1+] 4.27142 [2+] 3.17305 [3+] 1.70857 [4+] 1.46449 [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.