diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c
index bdd4d5d..8759e5d 100644
--- a/source/ubl-settings-usergroups.c
+++ b/source/ubl-settings-usergroups.c
@@ -138,33 +138,54 @@ void yon_hide_passwords(template_saving_window *window){
if (strstr(name,"USERADD[")){
int size;
config_str parsed = yon_char_parse(new_value,&size,":");
- if (parsed[5][0] !='$'&&parsed[5][0]!='%'){
+ if (size>5 &&parsed[5][0] !='$'&&parsed[5][0]!='%'){
parsed[5]="******";
char *new_compare = yon_char_unite(!yon_char_is_empty(old_value)?"":"",!yon_char_is_empty(old_value)?old_value:"",!yon_char_is_empty(old_value)?"":"","\n",yon_char_parsed_to_string(parsed,size,":"),NULL);
gtk_list_store_set(window->list,&iter,7,new_compare,-1);
+ free(new_compare);
+ } else {
+ char *new_compare = yon_char_unite(!yon_char_is_empty(old_value)?"":"",!yon_char_is_empty(old_value)?old_value:"",!yon_char_is_empty(old_value)?"":"","\n",NULL);
+ gtk_list_store_set(window->list,&iter,7,new_compare,-1);
+ free(new_compare);
+
}
} else if (strstr(name,"GROUPADD[")){
int size;
config_str parsed = yon_char_parse(new_value,&size,":");
- if (parsed[4][0] !='$'&&parsed[4][0]!='%'){
+ if (size>4&&parsed[4][0] !='$'&&parsed[4][0]!='%'){
parsed[4]="******";
char *new_compare = yon_char_unite(!yon_char_is_empty(old_value)?"":"",!yon_char_is_empty(old_value)?old_value:"",!yon_char_is_empty(old_value)?"":"","\n",yon_char_parsed_to_string(parsed,size,":"),NULL);
gtk_list_store_set(window->list,&iter,7,new_compare,-1);
+ } else {
+ char *new_compare = yon_char_unite(!yon_char_is_empty(old_value)?"":"",!yon_char_is_empty(old_value)?old_value:"",!yon_char_is_empty(old_value)?"":"","\n",NULL);
+ gtk_list_store_set(window->list,&iter,7,new_compare,-1);
+ free(new_compare);
+
}
} else if (strstr(name,"DEFAULTPASSWD")){
- if (new_value[0] !='$'&&new_value[0]!='%'){
- char *new_compare = yon_char_unite("",old_value,"\n******",NULL);
+ if (!yon_char_is_empty(new_value) && new_value[0] !='$'&&new_value[0]!='%'){
+ char *new_compare = yon_char_unite("",old_value,"\n",NULL);
gtk_list_store_set(window->list,&iter,7,new_compare,-1);
free(new_compare);
+ } else {
+ char *new_compare = yon_char_unite("",old_value,"\n",NULL);
+ gtk_list_store_set(window->list,&iter,7,new_compare,-1);
+ free(new_compare);
+
}
} else if (strstr(name,"DEFAULTROOTPASSWD")){
- if (new_value[0] !='$'&&new_value[0]!='%'){
+ if (!yon_char_is_empty(new_value) &&new_value[0] !='$'&&new_value[0]!='%'){
char *new_compare = yon_char_unite("",old_value,"\n******",NULL);
gtk_list_store_set(window->list,&iter,7,new_compare,-1);
free(new_compare);
+ } else {
+ char *new_compare = yon_char_unite("",old_value,"\n******",NULL);
+ gtk_list_store_set(window->list,&iter,7,new_compare,-1);
+ free(new_compare);
+
}
}