From 20c1e552c86968b302a8c97f1368565e643214bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=B4=D0=BC=D0=B8=D0=BD=D0=B8=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D1=80?= Date: Sun, 4 Aug 2024 12:10:56 +0200 Subject: [PATCH 1/6] Fixed users parsing --- source/ubl-settings-usergroups.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index ee8888f..b1539cb 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -8,6 +8,7 @@ int yon_load_proceed(YON_CONFIG_TYPE type){ yon_config_clean(); yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); if (type==YON_CONFIG_GLOBAL){ + yon_debug_output("%s\n",yon_char_unite(config_get_command("global"),NULL)); yon_config_load_config(type,config_get_command("global"),NULL); } if (type==YON_CONFIG_LOCAL){ @@ -80,7 +81,7 @@ void yon_interface_update(main_window *widgets){ int size; GtkTreeIter iter; char *def_groups = yon_config_get_by_key(USERGROUPS_parameter); - config_str users = yon_config_get_all_by_key(USERADD_parameter,&size); + config_str users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&size); if (users){ for (int i=0;iUsersList,&iter); From 412dad81c441e12f283c8459dd5fc0c65bde0a7d Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 5 Aug 2024 11:14:52 +0600 Subject: [PATCH 2/6] Test fix for crashes --- source/ubl-settings-usergroups.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index b1539cb..abe76f7 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -116,7 +116,7 @@ void yon_interface_update(main_window *widgets){ } gtk_list_store_set(widgets->UsersList,&iter, - 0,(parameters[5][0]=='!'||parameters[5][0]=='*')||(parameters[5][0]=='!'&¶meters[5][1]=='*'), + 0,parameters_size>5?(parameters[5][0]=='!'||parameters[5][0]=='*')||(parameters[5][0]=='!'&¶meters[5][1]=='*'):0, 2,login, 3,parameters_size>0?parameters[0]:"", 1,parameters_size>1&&!yon_char_is_empty(parameters[1])?parameters[1]:"", @@ -389,8 +389,10 @@ void yon_hide_passwords(template_saving_window *window){ void on_save_done(main_window *widgets, config_str output, int size){ char *final_output = yon_char_parsed_to_string(output,size,""); - printf("%s\n",final_output); - free(final_output); + if (final_output){ + printf("%s\n",final_output); + free(final_output); + } yon_char_parsed_free(output,size); on_config_update(NULL,widgets); if (main_config.load_mode==1){ From b98ac4d81314e0753318a04b9ed92bea1a7deee9 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 5 Aug 2024 11:40:19 +0600 Subject: [PATCH 3/6] test fix for memory leak --- source/ubl-settings-usergroups.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index abe76f7..75af699 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -2288,9 +2288,11 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w !yon_char_is_empty(do_not_check)?" ":"", yon_char_return_if_exist(no_user_group,""), NULL); - if (final_string[strlen(final_string)-1]==' ') final_string[strlen(final_string)-1]='\0'; - gtk_entry_set_text(GTK_ENTRY(window->userExtraOptionsEntry),final_string); - free(final_string); + if (strlen(final_string)){ + if (final_string[strlen(final_string)-1]==' ') final_string[strlen(final_string)-1]='\0'; + gtk_entry_set_text(GTK_ENTRY(window->userExtraOptionsEntry),final_string); + free(final_string); + } } void on_remove_expired(GtkWidget *self, GtkEntryIconPosition icon_pos, GdkEvent *event, GtkEntry *target){ From 9b47555ccece0d97b15ca41c089133768b9534cf Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 5 Aug 2024 12:27:50 +0600 Subject: [PATCH 4/6] Test fox for memory leak --- source/ubl-settings-usergroups.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 75af699..80c906f 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -2288,7 +2288,7 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w !yon_char_is_empty(do_not_check)?" ":"", yon_char_return_if_exist(no_user_group,""), NULL); - if (strlen(final_string)){ + if (final_string&&strlen(final_string)){ if (final_string[strlen(final_string)-1]==' ') final_string[strlen(final_string)-1]='\0'; gtk_entry_set_text(GTK_ENTRY(window->userExtraOptionsEntry),final_string); free(final_string); From 4cf6ebf475f2dba083f8b0f4e009ec21f8512981 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 5 Aug 2024 17:20:53 +0600 Subject: [PATCH 5/6] Crash fix --- source/ubl-settings-usergroups.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 80c906f..9047e13 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -443,7 +443,7 @@ void on_config_save(GtkWidget *self, main_window *widgets){ } char *old_final = yon_char_parsed_to_string(old_parsed,old_size,":"); char *new_final = yon_char_parsed_to_string(new_parsed,new_size,":"); - if (!strcmp(old_final,new_final)){ + if (old_final&&new_final&&!strcmp(old_final,new_final)){ gtk_list_store_set(window->list,&iter,5,0,-1); } free(old_final); @@ -2349,7 +2349,6 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel"); window->expiration_unix=NULL; - time_t t = time(NULL); struct tm tm = *localtime(&t); gtk_calendar_select_day(GTK_CALENDAR(window->ExpirationCalendar),tm.tm_mday); From df04d68bf53d5acfea8df6b2678c571acb06695c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 5 Aug 2024 18:01:04 +0600 Subject: [PATCH 6/6] Fixed startup crash --- source/ubl-settings-usergroups.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 9047e13..c09b947 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -148,7 +148,7 @@ void yon_interface_update(main_window *widgets){ if (parameters_size>2&&!strcmp(parameters[2],"x")){ parameters[2]=""; } - if (!strcmp(parameters[1],"x")) parameters[1]=""; + if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]=""; char *pars=""; if (parameters_size>4&&strcmp(parameters[4],"x")&&strcmp(parameters[4],"")){