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/mousepad-0.4.2/mousepad/mousepad-document.h
Examining data/mousepad-0.4.2/mousepad/mousepad-print.h
Examining data/mousepad-0.4.2/mousepad/mousepad-marshal.c
Examining data/mousepad-0.4.2/mousepad/mousepad-search-bar.h
Examining data/mousepad-0.4.2/mousepad/mousepad-language-action.c
Examining data/mousepad-0.4.2/mousepad/mousepad-dbus-infos.c
Examining data/mousepad-0.4.2/mousepad/mousepad-document.c
Examining data/mousepad-0.4.2/mousepad/mousepad-settings.c
Examining data/mousepad-0.4.2/mousepad/mousepad-view.c
Examining data/mousepad-0.4.2/mousepad/mousepad-prefs-dialog.c
Examining data/mousepad-0.4.2/mousepad/mousepad-window.h
Examining data/mousepad-0.4.2/mousepad/mousepad-file.c
Examining data/mousepad-0.4.2/mousepad/mousepad-dialogs.h
Examining data/mousepad-0.4.2/mousepad/mousepad-settings-store.c
Examining data/mousepad-0.4.2/mousepad/mousepad-util.h
Examining data/mousepad-0.4.2/mousepad/mousepad-close-button.c
Examining data/mousepad-0.4.2/mousepad/mousepad-view.h
Examining data/mousepad-0.4.2/mousepad/mousepad-application.h
Examining data/mousepad-0.4.2/mousepad/mousepad-private.h
Examining data/mousepad-0.4.2/mousepad/mousepad-marshal.h
Examining data/mousepad-0.4.2/mousepad/mousepad-encoding-dialog.c
Examining data/mousepad-0.4.2/mousepad/mousepad-prefs-dialog-ui.h
Examining data/mousepad-0.4.2/mousepad/mousepad-replace-dialog.h
Examining data/mousepad-0.4.2/mousepad/mousepad-statusbar.c
Examining data/mousepad-0.4.2/mousepad/mousepad-dbus.h
Examining data/mousepad-0.4.2/mousepad/mousepad-dbus-infos.h
Examining data/mousepad-0.4.2/mousepad/mousepad-search-bar.c
Examining data/mousepad-0.4.2/mousepad/mousepad-application.c
Examining data/mousepad-0.4.2/mousepad/mousepad-dialogs.c
Examining data/mousepad-0.4.2/mousepad/mousepad-style-scheme-action.c
Examining data/mousepad-0.4.2/mousepad/mousepad-file.h
Examining data/mousepad-0.4.2/mousepad/mousepad-action-group.h
Examining data/mousepad-0.4.2/mousepad/mousepad-encoding.h
Examining data/mousepad-0.4.2/mousepad/mousepad-encoding-dialog.h
Examining data/mousepad-0.4.2/mousepad/mousepad-prefs-dialog.h
Examining data/mousepad-0.4.2/mousepad/mousepad-gtkcompat.h
Examining data/mousepad-0.4.2/mousepad/mousepad-statusbar.h
Examining data/mousepad-0.4.2/mousepad/mousepad-settings.h
Examining data/mousepad-0.4.2/mousepad/mousepad-util.c
Examining data/mousepad-0.4.2/mousepad/mousepad-print.c
Examining data/mousepad-0.4.2/mousepad/mousepad-dbus.c
Examining data/mousepad-0.4.2/mousepad/mousepad-encoding.c
Examining data/mousepad-0.4.2/mousepad/mousepad-window.c
Examining data/mousepad-0.4.2/mousepad/mousepad-settings-store.h
Examining data/mousepad-0.4.2/mousepad/mousepad-window-ui.h
Examining data/mousepad-0.4.2/mousepad/mousepad-close-button.h
Examining data/mousepad-0.4.2/mousepad/main.c
Examining data/mousepad-0.4.2/mousepad/mousepad-replace-dialog.c
Examining data/mousepad-0.4.2/mousepad/mousepad-language-action.h
Examining data/mousepad-0.4.2/mousepad/mousepad-action-group.c
Examining data/mousepad-0.4.2/mousepad/mousepad-style-scheme-action.h

FINAL RESULTS:

data/mousepad-0.4.2/mousepad/mousepad-window.c:2417:15:  [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.
    homedir = g_get_home_dir ();
data/mousepad-0.4.2/mousepad/mousepad-window.c:2477:21:  [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 = CLAMP (atoi (tab_sizes[i]), 1, 32);
data/mousepad-0.4.2/mousepad/mousepad-file.c:742: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).
          length = strlen (contents);
data/mousepad-0.4.2/mousepad/mousepad-file.c:767: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).
              length = strlen (contents);
data/mousepad-0.4.2/mousepad/mousepad-prefs-dialog.c:179:16:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
      gboolean equal;
data/mousepad-0.4.2/mousepad/mousepad-prefs-dialog.c:185:11:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
      if (equal)
data/mousepad-0.4.2/mousepad/mousepad-util.c:185: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).
  config = g_new (gchar, strlen (name) + 1);
data/mousepad-0.4.2/mousepad/mousepad-util.c:220: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).
  key = g_new (gchar, strlen (name) + 10);
data/mousepad-0.4.2/mousepad/mousepad-util.c:251: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).
  result = g_string_sized_new (strlen (str));
data/mousepad-0.4.2/mousepad/mousepad-util.c:306: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).
  result = g_string_sized_new (strlen (str));
data/mousepad-0.4.2/mousepad/mousepad-util.c:347: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).
  result = g_string_sized_new (strlen (str));
data/mousepad-0.4.2/mousepad/mousepad-window.c:3106: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).
      offset = strlen (_("Charset")) + 2;
data/mousepad-0.4.2/mousepad/mousepad-window.c:3109: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 (G_LIKELY (strlen (description) > offset))

ANALYSIS SUMMARY:

Hits = 13
Lines analyzed = 21550 in approximately 0.47 seconds (46280 lines/second)
Physical Source Lines of Code (SLOC) = 13816
Hits@level = [0]   0 [1]  11 [2]   1 [3]   1 [4]   0 [5]   0
Hits@level+ = [0+]  13 [1+]  13 [2+]   2 [3+]   1 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.940938 [1+] 0.940938 [2+] 0.14476 [3+] 0.0723798 [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.