diff --git a/WINGs/menuparser.c b/WINGs/menuparser.c index 8d090fd1..6d8411cc 100644 --- a/WINGs/menuparser.c +++ b/WINGs/menuparser.c @@ -615,7 +615,7 @@ static void menu_parser_condition_ifmacro(WMenuParser parser, Bool check_exists) ((!check_exists) && (macro != NULL)); } - strcpy(parser->cond.stack[0].name, cmd_name); + strncpy(parser->cond.stack[0].name, cmd_name, sizeof(parser->cond.stack[0].name) - 1); parser->cond.stack[0].line = parser->line_number; } diff --git a/WINGs/menuparser_macros.c b/WINGs/menuparser_macros.c index a8c82238..aca0bf5f 100644 --- a/WINGs/menuparser_macros.c +++ b/WINGs/menuparser_macros.c @@ -693,7 +693,7 @@ static void w_create_macro(WMenuParser parser, const char *name, WParserMacroFun WParserMacro *macro; macro = wmalloc(sizeof(*macro)); - strcpy(macro->name, name); + strncpy(macro->name, name, sizeof(macro->name) - 1); macro->function = handler; macro->arg_count = -1; macro->next = parser->macros; diff --git a/src/session.c b/src/session.c index b6a86878..a37bbc52 100644 --- a/src/session.c +++ b/src/session.c @@ -203,7 +203,7 @@ static WMPropList *makeWindowState(WWindow * wwin, WApplication * wapp) command = GetCommandForWindow(win); if (!command) { if (wapp->app_icon && wapp->app_icon->command) { - command = wmalloc(strlen(wapp->app_icon->command)); + command = wmalloc(strlen(wapp->app_icon->command) + 1); strcpy(command, wapp->app_icon->command); } else return NULL; diff --git a/src/wmspec.c b/src/wmspec.c index 5faf3025..636b7672 100644 --- a/src/wmspec.c +++ b/src/wmspec.c @@ -997,7 +997,7 @@ static void updateWorkspaceNames(WScreen *scr) len = 0; for (i = 0; i < scr->workspace_count; i++) { curr_size = strlen(scr->workspaces[i]->name); - strcpy(pos, scr->workspaces[i]->name); + strncpy(pos, scr->workspaces[i]->name, sizeof(pos) - 1); pos += (curr_size + 1); len += (curr_size + 1); }