From 02b26355d873b23a4efc432290fa13802f52370d Mon Sep 17 00:00:00 2001 From: Hubert Kowalski Date: Sat, 8 Jan 2022 15:16:44 +0100 Subject: [PATCH] [styles.c] remove `/` from style name to avoid crash removes `/` from style names replacing it with `-` in order to avoid pottential crash in `dt_accel_connect_shortcut` fixes #10686 --- src/common/styles.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/common/styles.c b/src/common/styles.c index 6eae8411dbb9..b330b4dddc47 100644 --- a/src/common/styles.c +++ b/src/common/styles.c @@ -1573,8 +1573,10 @@ void dt_init_styles_key_accels() for(GList *res_iter = result; res_iter; res_iter = g_list_next(res_iter)) { dt_style_t *style = (dt_style_t *)res_iter->data; + gchar* tmp_name = g_strdelimit(g_strdup(style->name), "/", '-'); char tmp_accel[1024]; - snprintf(tmp_accel, sizeof(tmp_accel), C_("accel", "styles/apply %s"), style->name); + snprintf(tmp_accel, sizeof(tmp_accel), C_("accel", "styles/apply %s"), tmp_name); + g_free(tmp_name); dt_accel_register_global(tmp_accel, 0, 0); } g_list_free_full(result, dt_style_free); @@ -1592,8 +1594,10 @@ void dt_connect_styles_key_accels() dt_style_t *style = (dt_style_t *)res_iter->data; closure = g_cclosure_new(G_CALLBACK(_apply_style_shortcut_callback), g_strdup(style->name), _destroy_style_shortcut_callback); + gchar* tmp_name = g_strdelimit(g_strdup(style->name), "/", '-'); char tmp_accel[1024]; - snprintf(tmp_accel, sizeof(tmp_accel), C_("accel", "styles/apply %s"), style->name); + snprintf(tmp_accel, sizeof(tmp_accel), C_("accel", "styles/apply %s"), tmp_name); + g_free(tmp_name); dt_accel_connect_global(tmp_accel, closure); } g_list_free_full(result, dt_style_free);