From f93691cc7c34282c7ba1427945bc5016831204f5 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 28 Feb 2024 17:36:48 +0600 Subject: [PATCH] Passwords and hash of old values at saving window replaced with '********' --- source/ubl-settings-usergroups.c | 56 +++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 0efee6e..bcb9bd3 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -238,6 +238,22 @@ void yon_hide_passwords(template_saving_window *window){ } } if(!yon_char_is_empty(old_value)){ + config_str parsed = NULL; + parsed = yon_char_parse(old_value,&size,":"); + if (size>5&&!yon_char_is_empty(parsed[5])&&strcmp(parsed[5],"x")&&parsed[5][0]!='%'&&parsed[5][1]!='%'){ + free(old_value); + free(parsed[5]); + parsed[5]=yon_char_new("*******"); + old_value = yon_char_parsed_to_string(parsed,size,":"); + } else if (size>5&&!yon_char_is_empty(parsed[5])&&strcmp(parsed[5],"x")) { + free(old_value); + free(yon_char_divide(parsed[5],1)); + old_value = yon_char_parsed_to_string(parsed,size,":"); + } + if (parsed){ + yon_char_parsed_free(parsed,size); + } + old=yon_char_unite("",old_value,"",NULL); } if(!yon_char_is_empty(new_value)){ @@ -260,6 +276,21 @@ void yon_hide_passwords(template_saving_window *window){ new_value = yon_char_parsed_to_string(parsed,size,":"); } if(!yon_char_is_empty(old_value)){ + config_str parsed = NULL; + parsed = yon_char_parse(old_value,&size,":"); + if (size>4&&!yon_char_is_empty(parsed[4])&&strcmp(parsed[4],"x")&&parsed[4][0]!='%'&&parsed[4][1]!='%'){ + free(old_value); + free(parsed[4]); + parsed[4]=yon_char_new("*******"); + old_value = yon_char_parsed_to_string(parsed,size,":"); + } else if (size>4&&!yon_char_is_empty(parsed[4])&&strcmp(parsed[4],"x")) { + free(old_value); + free(yon_char_divide(parsed[4],1)); + old_value = yon_char_parsed_to_string(parsed,size,":"); + } + if (parsed){ + yon_char_parsed_free(parsed,size); + } old=yon_char_unite("",old_value,"",NULL); } if(!yon_char_is_empty(new_value)){ @@ -276,12 +307,21 @@ void yon_hide_passwords(template_saving_window *window){ free(yon_char_divide(new_value,1)); newv=new_value; } else if (!yon_char_is_empty(new_value)&&new_value[0]=='$') { - newv=new_value; + if (main_config.load_mode){ + newv=new_value; + } else { + newv="*******"; + } }else if (!yon_char_is_empty(new_value)){ newv="*******"; } if (!yon_char_is_empty(old_value)){ - old = yon_char_unite("",old_value,"",NULL); + if (main_config.load_mode){ + + old = yon_char_new("*******"); + } else { + old = yon_char_unite("",old_value,"",NULL); + } } char *new_string = yon_char_unite(!yon_char_is_empty(old)?old:"","\n",!yon_char_is_empty(newv)?newv:"",NULL); gtk_list_store_set(window->list,&iter,7,new_string,-1); @@ -293,12 +333,20 @@ void yon_hide_passwords(template_saving_window *window){ free(yon_char_divide(new_value,1)); newv=new_value; } else if (!yon_char_is_empty(new_value)&&new_value[0]=='$') { - newv=new_value; + if (main_config.load_mode){ + newv=new_value; + } else { + newv="*******"; + } }else if (!yon_char_is_empty(new_value)){ newv="*******"; } if (!yon_char_is_empty(old_value)){ - old = yon_char_unite("",old_value,"",NULL); + if (main_config.load_mode){ + old = yon_char_new("*******"); + } else { + old = yon_char_unite("",old_value,"",NULL); + } } char *new_string = yon_char_unite(!yon_char_is_empty(old)?old:"","\n",!yon_char_is_empty(newv)?newv:"",NULL); gtk_list_store_set(window->list,&iter,7,new_string,-1);