summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ui/gtk/main_menubar.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c
index ed677ba858..2bc15aa531 100644
--- a/ui/gtk/main_menubar.c
+++ b/ui/gtk/main_menubar.c
@@ -4222,6 +4222,7 @@ add_tap_plugins (guint merge_id, GtkUIManager *ui_manager)
gchar *action_name;
gchar *submenu_path;
+ gsize submenu_path_size;
gchar *stat_name_buf;
gchar *stat_name;
gchar *sep;
@@ -4243,8 +4244,9 @@ add_tap_plugins (guint merge_id, GtkUIManager *ui_manager)
stats_tree_cfg *cfg = (stats_tree_cfg*)iter->data;
if (cfg->plugin) {
stat_name_buf = g_strdup(cfg->name);
- submenu_path = (gchar *)g_malloc(strlen(MENU_STATISTICS_PATH)+strlen(cfg->name)+strlen(cfg->abbr)+1); /* worst case length */
- strcpy(submenu_path, MENU_STATISTICS_PATH);
+ submenu_path_size = (gsize)(strlen(MENU_STATISTICS_PATH)+strlen(cfg->name)+strlen(cfg->abbr)+1); /* worst case length */
+ submenu_path = (gchar *)g_malloc(submenu_path_size);
+ g_strlcpy(submenu_path, MENU_STATISTICS_PATH, submenu_path_size);
sep = stat_name= stat_name_buf;
while ((sep = strchr(sep,'/')) != NULL) {
@@ -4272,8 +4274,8 @@ add_tap_plugins (guint merge_id, GtkUIManager *ui_manager)
}
g_free (action_name);
- strcat(submenu_path,"/");
- strcat(submenu_path,stat_name);
+ g_strlcat(submenu_path,"/",submenu_path_size);
+ g_strlcat(submenu_path,stat_name,submenu_path_size);
stat_name= sep;
}
}