summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/dialogs/dmenu.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/dialogs/dmenu.c b/source/dialogs/dmenu.c
index d66eddd7..65235710 100644
--- a/source/dialogs/dmenu.c
+++ b/source/dialogs/dmenu.c
@@ -123,8 +123,11 @@ static void read_add ( DmenuModePrivateData * pd, char *data, gsize len )
pd->cmd_list[pd->cmd_list_length].icon_name = NULL;
pd->cmd_list[pd->cmd_list_length].meta = NULL;
pd->cmd_list[pd->cmd_list_length].info = NULL;
- char *end = strchr ( data, '\0' );
- if ( end != NULL ) {
+ char *end = data;
+ while ( end < data + len && *end != '\0' ) {
+ end++;
+ }
+ if ( end != data + len ) {
data_len = end - data;
dmenuscript_parse_entry_extras ( NULL, &( pd->cmd_list[pd->cmd_list_length] ), end + 1, len - data_len );
}