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/rofi-1.5.4/config/config.c
Examining data/rofi-1.5.4/lexer/theme-lexer.c
Examining data/rofi-1.5.4/lexer/theme-parser.c
Examining data/rofi-1.5.4/lexer/theme-parser.h
Examining data/rofi-1.5.4/resources/resources.c
Examining data/rofi-1.5.4/resources/resources.h
Examining data/rofi-1.5.4/test/helper-tokenize.c
Examining data/rofi-1.5.4/test/scrollbar-test.c
Examining data/rofi-1.5.4/test/widget-test.c
Examining data/rofi-1.5.4/test/box-test.c
Examining data/rofi-1.5.4/test/theme-parser-test.c
Examining data/rofi-1.5.4/test/helper-config-cmdline-parser.c
Examining data/rofi-1.5.4/test/helper-expand.c
Examining data/rofi-1.5.4/test/helper-test.c
Examining data/rofi-1.5.4/test/mode-test.c
Examining data/rofi-1.5.4/test/helper-pidfile.c
Examining data/rofi-1.5.4/test/history-test.c
Examining data/rofi-1.5.4/test/textbox-test.c
Examining data/rofi-1.5.4/subprojects/libgwater/xcb/libgwater-xcb.h
Examining data/rofi-1.5.4/subprojects/libgwater/xcb/libgwater-xcb.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/uuid.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/xdg-de.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/gtk-settings.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/token.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-token.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-gtk-settings.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-bindings.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/uuid-libuuid.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-colour.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/uuid-apr-util.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/uuid-internal.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-enum.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/enum.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/colour.c
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-xdg-de.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-uuid.h
Examining data/rofi-1.5.4/subprojects/libnkutils/src/nkutils-xdg-theme.h
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/uuid.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/xdg-de.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/gtk-settings.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/token.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/bindings.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/enum.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/xdg-theme.c
Examining data/rofi-1.5.4/subprojects/libnkutils/tests/colour.c
Examining data/rofi-1.5.4/include/rofi-types.h
Examining data/rofi-1.5.4/include/xcb-internal.h
Examining data/rofi-1.5.4/include/css-colors.h
Examining data/rofi-1.5.4/include/mode.h
Examining data/rofi-1.5.4/include/widgets/widget.h
Examining data/rofi-1.5.4/include/widgets/box.h
Examining data/rofi-1.5.4/include/widgets/container.h
Examining data/rofi-1.5.4/include/widgets/listview.h
Examining data/rofi-1.5.4/include/widgets/icon.h
Examining data/rofi-1.5.4/include/widgets/scrollbar.h
Examining data/rofi-1.5.4/include/widgets/textbox.h
Examining data/rofi-1.5.4/include/widgets/widget-internal.h
Examining data/rofi-1.5.4/include/rofi.h
Examining data/rofi-1.5.4/include/timings.h
Examining data/rofi-1.5.4/include/theme.h
Examining data/rofi-1.5.4/include/xrmoptions.h
Examining data/rofi-1.5.4/include/dialogs/dmenuscriptshared.h
Examining data/rofi-1.5.4/include/dialogs/dmenu.h
Examining data/rofi-1.5.4/include/dialogs/combi.h
Examining data/rofi-1.5.4/include/dialogs/run.h
Examining data/rofi-1.5.4/include/dialogs/dialogs.h
Examining data/rofi-1.5.4/include/dialogs/help-keys.h
Examining data/rofi-1.5.4/include/dialogs/drun.h
Examining data/rofi-1.5.4/include/dialogs/ssh.h
Examining data/rofi-1.5.4/include/dialogs/script.h
Examining data/rofi-1.5.4/include/dialogs/window.h
Examining data/rofi-1.5.4/include/settings.h
Examining data/rofi-1.5.4/include/mode-private.h
Examining data/rofi-1.5.4/include/rofi-icon-fetcher.h
Examining data/rofi-1.5.4/include/history.h
Examining data/rofi-1.5.4/include/view.h
Examining data/rofi-1.5.4/include/helper-theme.h
Examining data/rofi-1.5.4/include/view-internal.h
Examining data/rofi-1.5.4/include/xcb.h
Examining data/rofi-1.5.4/include/helper.h
Examining data/rofi-1.5.4/include/keyb.h
Examining data/rofi-1.5.4/include/display.h
Examining data/rofi-1.5.4/source/rofi-icon-fetcher.c
Examining data/rofi-1.5.4/source/css-colors.c
Examining data/rofi-1.5.4/source/rofi.c
Examining data/rofi-1.5.4/source/widgets/widget.c
Examining data/rofi-1.5.4/source/widgets/box.c
Examining data/rofi-1.5.4/source/widgets/listview.c
Examining data/rofi-1.5.4/source/widgets/container.c
Examining data/rofi-1.5.4/source/widgets/icon.c
Examining data/rofi-1.5.4/source/widgets/textbox.c
Examining data/rofi-1.5.4/source/widgets/scrollbar.c
Examining data/rofi-1.5.4/source/xrmoptions.c
Examining data/rofi-1.5.4/source/history.c
Examining data/rofi-1.5.4/source/dialogs/window.c
Examining data/rofi-1.5.4/source/dialogs/script.c
Examining data/rofi-1.5.4/source/dialogs/help-keys.c
Examining data/rofi-1.5.4/source/dialogs/run.c
Examining data/rofi-1.5.4/source/dialogs/dmenu.c
Examining data/rofi-1.5.4/source/dialogs/combi.c
Examining data/rofi-1.5.4/source/dialogs/drun.c
Examining data/rofi-1.5.4/source/dialogs/ssh.c
Examining data/rofi-1.5.4/source/helper.c
Examining data/rofi-1.5.4/source/keyb.c
Examining data/rofi-1.5.4/source/mode.c
Examining data/rofi-1.5.4/source/rofi-types.c
Examining data/rofi-1.5.4/source/view.c
Examining data/rofi-1.5.4/source/xcb.c
Examining data/rofi-1.5.4/source/timings.c
Examining data/rofi-1.5.4/source/theme.c

FINAL RESULTS:

data/rofi-1.5.4/lexer/theme-parser.c:720:21:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
#  define YYFPRINTF fprintf
data/rofi-1.5.4/source/view.c:214:5:  [4] (format) fprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
    fprintf ( stderr, color_green "Storing screenshot %s\n"color_reset, fpath );
data/rofi-1.5.4/source/xrmoptions.c:647:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf ( "\t"color_italic "%s"color_reset, ( *( xo->value.str ) == NULL ) ? "(unset)" : ( *( xo->value.str ) ) );
data/rofi-1.5.4/source/xrmoptions.c:661:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf ( "\t"color_italic "%u"color_reset, *( xo->value.num ) );
data/rofi-1.5.4/source/xrmoptions.c:675:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf ( "\t"color_italic "%d"color_reset, *( xo->value.snum ) );
data/rofi-1.5.4/source/xrmoptions.c:689:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf ( "\t"color_italic "%c"color_reset, *( xo->value.charc ) );
data/rofi-1.5.4/source/xrmoptions.c:703:9:  [4] (format) printf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
        printf ( "\t"color_italic "%s"color_reset, ( *( xo->value.snum ) ) ? "True" : "False" );
data/rofi-1.5.4/source/dialogs/run.c:226:42:  [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.
    gchar *homedir = g_locale_to_utf8 (  g_get_home_dir (), -1, NULL, &l, &error );
data/rofi-1.5.4/source/dialogs/ssh.c:464:10:  [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.
    if ( g_get_home_dir () == NULL ) {
data/rofi-1.5.4/source/dialogs/ssh.c:498:22:  [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.
    const char *hd = g_get_home_dir ();
data/rofi-1.5.4/source/dialogs/ssh.c:503:41:  [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.
        char *path = g_build_filename ( g_get_home_dir (), ".ssh", "known_hosts", NULL );
data/rofi-1.5.4/source/helper.c:665:33:  [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.
            str[i] = g_strdup ( g_get_home_dir () );
data/rofi-1.5.4/source/rofi.c:793:42:  [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.
            pidfile = g_build_filename ( g_get_home_dir (), ".rofi.pid", NULL );
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:323:17:  [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.
        try_dir(g_get_home_dir());
data/rofi-1.5.4/test/helper-expand.c:100:22:  [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.
    const char *hd = g_get_home_dir ();
data/rofi-1.5.4/test/helper-pidfile.c:74:28:  [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.
        const char *tmpd = g_get_tmp_dir ();
data/rofi-1.5.4/include/mode-private.h:157: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         cfg_name_key[128];
data/rofi-1.5.4/include/rofi-types.h:44:14:  [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.
extern const char * const PropertyTypeName[P_NUM_TYPES];
data/rofi-1.5.4/lexer/theme-lexer.c:997:21:  [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 (buf, current->input_str, len);\
data/rofi-1.5.4/lexer/theme-lexer.c:1452:19:  [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).
        FILE *f = fopen ( filename, "rb" );
data/rofi-1.5.4/lexer/theme-lexer.c:3035:12:  [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).
    yyin = fopen ( filename, "rb" );
data/rofi-1.5.4/lexer/theme-parser.c:3176: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 const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
data/rofi-1.5.4/source/dialogs/dmenu.c:360:14:  [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 ( str, O_RDONLY );
data/rofi-1.5.4/source/dialogs/drun.c:269: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          id[id_len];
data/rofi-1.5.4/source/dialogs/ssh.c:176:18:  [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).
    FILE *fd   = fopen ( path, "r" );
data/rofi-1.5.4/source/dialogs/ssh.c:270:16:  [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).
    FILE *fd = fopen ( "/etc/hosts", "r" );
data/rofi-1.5.4/source/dialogs/ssh.c:347:16:  [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).
    FILE *fd = fopen ( filename, "r" );
data/rofi-1.5.4/source/dialogs/window.c:324: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 ( c->state, states.atoms, MIN ( CLIENTSTATE, states.atoms_len ) * sizeof ( xcb_atom_t ) );
data/rofi-1.5.4/source/dialogs/window.c:330: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 ( c->window_type, states.atoms, MIN ( CLIENTWINDOWTYPE, states.atoms_len ) * sizeof ( xcb_atom_t ) );
data/rofi-1.5.4/source/dialogs/window.c:494: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 ( wins, clients.windows, nwins * sizeof ( xcb_window_t ) );
data/rofi-1.5.4/source/dialogs/window.c:501:13:  [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 ( wins, clients.windows, nwins * sizeof ( xcb_window_t ) );
data/rofi-1.5.4/source/dialogs/window.c:621: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 window_regex[100]; /* We are probably safe here */
data/rofi-1.5.4/source/helper.c:509: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    buffer[64];
data/rofi-1.5.4/source/history.c:239: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).
    fd = fopen ( filename, "w" );
data/rofi-1.5.4/source/rofi-icon-fetcher.c:108:11:  [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.
    const char                 *themes[2] = { config.icon_theme, NULL };
data/rofi-1.5.4/source/rofi-types.c:6:7:  [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.
const char * const PropertyTypeName[P_NUM_TYPES] = {
data/rofi-1.5.4/source/theme.c:156: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 buf[G_ASCII_DTOSTR_BUF_SIZE];
data/rofi-1.5.4/source/theme.c:178:7:  [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.
const char * const WindowLocationStr[9] = {
data/rofi-1.5.4/source/widgets/textbox.c:270: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   string [l + 1];
data/rofi-1.5.4/source/xcb.c:133:13:  [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 ( &rootpixmap, xcb_get_property_value ( reply ), sizeof ( xcb_pixmap_t ) );
data/rofi-1.5.4/source/xcb.c:237: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 ( retv->name, tname, tname_len );
data/rofi-1.5.4/subprojects/libnkutils/src/uuid.c:60: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(self->data, sum, NK_UUID_LENGTH);
data/rofi-1.5.4/lexer/theme-lexer.c:1161:14:  [1] (buffer) getc:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
data/rofi-1.5.4/lexer/theme-lexer.c:1686: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).
        po->str_len = strlen(val);
data/rofi-1.5.4/lexer/theme-lexer.c:2770: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).
	return yy_scan_bytes( yystr, (int) strlen(yystr) );
data/rofi-1.5.4/lexer/theme-lexer.c:3087: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).
    po->str_len   = strlen(string);
data/rofi-1.5.4/lexer/theme-parser.c:941:12:  [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).
    return strlen (yystr);
data/rofi-1.5.4/lexer/theme-parser.c:3254: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).
    size_t yysz = yysize + strlen (yyformat);
data/rofi-1.5.4/resources/resources.c:642:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  __pragma(section(".CRT$XCU",read)) \
data/rofi-1.5.4/resources/resources.c:650:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  __pragma(section(".CRT$XCU",read)) \
data/rofi-1.5.4/resources/resources.c:662:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  section(".CRT$XCU",read)
data/rofi-1.5.4/resources/resources.c:669:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  section(".CRT$XCU",read)
data/rofi-1.5.4/source/dialogs/combi.c:235: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).
                    pa->end_index   = strlen ( dname );
data/rofi-1.5.4/source/dialogs/drun.c:231:31:  [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 ( exec_path != NULL && strlen ( exec_path ) == 0 ) {
data/rofi-1.5.4/source/dialogs/drun.c:268: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).
    const ssize_t id_len = strlen ( path ) - strlen ( root );
data/rofi-1.5.4/source/dialogs/drun.c:268: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).
    const ssize_t id_len = strlen ( path ) - strlen ( root );
data/rofi-1.5.4/source/dialogs/drun.c:270:29:  [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_strlcpy ( id, &( path[strlen ( root ) + 1] ), id_len );
data/rofi-1.5.4/source/dialogs/drun.c:419:80:  [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).
    pd->entry_list[pd->cmd_list_length].app_id         = g_strndup ( basename, strlen ( basename ) - strlen ( ".desktop" ) );
data/rofi-1.5.4/source/dialogs/drun.c:419:102:  [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).
    pd->entry_list[pd->cmd_list_length].app_id         = g_strndup ( basename, strlen ( basename ) - strlen ( ".desktop" ) );
data/rofi-1.5.4/source/dialogs/run.c:168:29:  [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 ( buffer[strlen ( buffer ) - 1] == '\n' ) {
data/rofi-1.5.4/source/dialogs/run.c:169: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).
                    buffer[strlen ( buffer ) - 1] = '\0';
data/rofi-1.5.4/source/dialogs/script.c:110:27:  [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).
            pd->message = strlen ( value ) ? g_strdup ( value ) : NULL;
data/rofi-1.5.4/source/dialogs/script.c:171:41:  [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_t buf_length = strlen(buffer)+1;
data/rofi-1.5.4/source/dialogs/ssh.c:109: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).
    gsize l     = strlen ( "Connecting to '' via rofi" ) + strlen ( entry->hostname ) + 1;
data/rofi-1.5.4/source/dialogs/ssh.c:109:60:  [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 l     = strlen ( "Connecting to '' via rofi" ) + strlen ( entry->hostname ) + 1;
data/rofi-1.5.4/source/helper.c:139: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).
    size_t str_l = strlen ( r );
data/rofi-1.5.4/source/helper.c:233:18:  [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_t len = strlen ( input );
data/rofi-1.5.4/source/helper.c:332: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).
    const size_t len = strlen ( arg );
data/rofi-1.5.4/source/helper.c:1009:34:  [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 l            = strlen ( "Launching '' via rofi" ) + strlen ( cmd ) + 1;
data/rofi-1.5.4/source/helper.c:1009:71:  [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 l            = strlen ( "Launching '' via rofi" ) + strlen ( cmd ) + 1;
data/rofi-1.5.4/source/theme.c:294:14:  [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).
    int pl = strlen ( p->name );
data/rofi-1.5.4/source/theme.c:338:42:  [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_name_length = MAX ( strlen ( p->name ), property_name_length );
data/rofi-1.5.4/source/theme.c:816: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 ( *r == '#' && strlen ( r ) == 9 ) {
data/rofi-1.5.4/source/view.c:825: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).
                                          strlen ( ahost ), ahost );
data/rofi-1.5.4/source/view.c:1036: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).
    if ( state->text && strlen ( state->text->text ) > 0 ) {
data/rofi-1.5.4/source/view.c:1398:51:  [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 ( textbox_append_text ( state->text, text, strlen ( text ) ) ) {
data/rofi-1.5.4/source/widgets/textbox.c:621: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).
    int  len = ( int ) strlen ( tb->text );
data/rofi-1.5.4/source/widgets/textbox.c:655: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).
    memmove ( start, end, ( tb->text + strlen ( tb->text ) ) - end + 1 );
data/rofi-1.5.4/source/xcb.c:291:88:  [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).
    xcb_query_extension_cookie_t randr_cookie = xcb_query_extension ( xcb->connection, strlen ( extension ), extension );
data/rofi-1.5.4/source/xcb.c:744:31:  [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 int dl = strlen ( text );
data/rofi-1.5.4/source/xcb.c:1064:77:  [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).
        xcb_intern_atom_cookie_t cc = xcb_intern_atom ( xcb->connection, 0, strlen ( netatom_names[i] ), netatom_names[i] );
data/rofi-1.5.4/source/xrmoptions.c:273:14:  [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 ( xrmValue ) > 0 &&
data/rofi-1.5.4/source/xrmoptions.c:524:27:  [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).
             (int) ( 30 - strlen ( option->name ) ), "" );
data/rofi-1.5.4/source/xrmoptions.c:644:13:  [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).
    int l = strlen ( xo->name );
data/rofi-1.5.4/source/xrmoptions.c:658:13:  [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).
    int l = strlen ( xo->name );
data/rofi-1.5.4/source/xrmoptions.c:672:13:  [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).
    int l = strlen ( xo->name );
data/rofi-1.5.4/source/xrmoptions.c:686:13:  [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).
    int l = strlen ( xo->name );
data/rofi-1.5.4/source/xrmoptions.c:700:13:  [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).
    int l = strlen ( xo->name );
data/rofi-1.5.4/source/xrmoptions.c:756:18:  [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).
    int l = 37 - strlen ( option ) - strlen ( type );
data/rofi-1.5.4/source/xrmoptions.c:756: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).
    int l = 37 - strlen ( option ) - strlen ( type );
data/rofi-1.5.4/source/xrmoptions.c:816: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).
        size_t l = strlen ( xrmOptions[i].name );
data/rofi-1.5.4/source/xrmoptions.c:820: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).
        size_t l = strlen ( extra_options[i].name );
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:347: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).
    l = strlen(w);
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:471:51:  [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).
        else if ( g_ascii_strncasecmp(s, "Mouse", strlen("Mouse")) == 0 )
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:473:18:  [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).
            s += strlen("Mouse");
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:483:50:  [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_ascii_strncasecmp(s, "Extra", strlen("Extra")) == 0 )
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:485:22:  [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).
                s += strlen("Extra");
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:523:52:  [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).
        else if ( g_ascii_strncasecmp(s, "Scroll", strlen("Scroll")) == 0 )
data/rofi-1.5.4/subprojects/libnkutils/src/bindings.c:525:18:  [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).
            s += strlen("Scroll");
data/rofi-1.5.4/subprojects/libnkutils/src/colour.c:465: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).
    g_scanner_input_text(_nk_colour_scanner, s, strlen(s));
data/rofi-1.5.4/subprojects/libnkutils/src/colour.c:552:73:  [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).
            const gchar *hex = _nk_colour_scanner->value.v_identifier + strlen("#");
data/rofi-1.5.4/subprojects/libnkutils/src/colour.c:553:22:  [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).
            switch ( strlen(hex) )
data/rofi-1.5.4/subprojects/libnkutils/src/token.c:140: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).
    self->length = strlen(self->string);
data/rofi-1.5.4/subprojects/libnkutils/src/token.c:299: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).
                w = w + strlen(w) + 1;
data/rofi-1.5.4/subprojects/libnkutils/src/token.c:303:22:  [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).
                w += strlen(w);
data/rofi-1.5.4/subprojects/libnkutils/src/uuid.c:48:18:  [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(name);
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-de.c:101:36:  [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).
        const gchar *s, *e = var + strlen(var);
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:840:18:  [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).
            tl = strlen(*theme_name);
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:844:14:  [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(G_DIR_SEPARATOR_S) + strlen(name) + 1;
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:844:42:  [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(G_DIR_SEPARATOR_S) + strlen(name) + 1;
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:996:13:  [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(name) - strlen("-symbolic") + 1;
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:996: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).
        l = strlen(name) - strlen("-symbolic") + 1;
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:1072:13:  [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(locale);
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:1097: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).
    l = strlen(name);
data/rofi-1.5.4/subprojects/libnkutils/src/xdg-theme.c:1109:14:  [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).
        ll = strlen(locales[i]);
data/rofi-1.5.4/test/helper-test.c:135: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).
        str = rofi_force_utf8 ( in, strlen ( in ) );

ANALYSIS SUMMARY:

Hits = 116
Lines analyzed = 40140 in approximately 1.09 seconds (36704 lines/second)
Physical Source Lines of Code (SLOC) = 28856
Hits@level = [0] 173 [1]  74 [2]  26 [3]   9 [4]   7 [5]   0
Hits@level+ = [0+] 289 [1+] 116 [2+]  42 [3+]  16 [4+]   7 [5+]   0
Hits/KSLOC@level+ = [0+] 10.0152 [1+] 4.01996 [2+] 1.4555 [3+] 0.554477 [4+] 0.242584 [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.