From 80653d2d88578bdbf55e5cde581a9bdcfaf0a2b3 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Sep 2025 17:05:34 +0600 Subject: [PATCH 1/3] Crash fix --- source/libublsettings-config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 11d97d9..b1a1775 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1194,7 +1194,7 @@ config_str yon_config_get_save_parameters_by_key(int *size, char *parameter,...) } config_str yon_config_get_save_parameters(int *size){ - + check_config{} else return NULL; (*size)=0; int removed_size=0; config_str removed = NULL; From 026e8bd6ca9ab58edbda51a97d1166b5ced6a32a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Sep 2025 17:28:48 +0600 Subject: [PATCH 2/3] Crash fix --- source/libublsettings-config.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index b1a1775..3089c10 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -1295,6 +1295,9 @@ char *yon_config_parameter_prepare_command(char *command, char *path, char *sect yon_char_parsed_add_or_create_if_exists(parsed,&size,parameter); } } + char *temp = yon_char_new("ubconfig -ea"); + free(parsed[0]); + parsed[0]=temp; char *final = yon_char_parsed_to_string(parsed,size," "); yon_char_parsed_free(parsed,size); return final; From f72f518735c43116604288828a64ce3fb789c6ac Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Sep 2025 18:36:42 +0600 Subject: [PATCH 3/3] Fixes --- source/libublsettings-char.c | 9 +++++++-- source/libublsettings-config.c | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/source/libublsettings-char.c b/source/libublsettings-char.c index e9d6c50..ffabdb3 100644 --- a/source/libublsettings-char.c +++ b/source/libublsettings-char.c @@ -297,7 +297,7 @@ char *yon_char_replace_single(char *source, char *find, char *replace){ return NULL; } -char **yon_char_parse(const char *parameters, int *size, char *divider){ +char **yon_char_parse(const char * parameters, int *size, char * divider){ *size=0; if (parameters&&!yon_char_is_empty(divider)){ char **string=NULL; @@ -305,7 +305,12 @@ char **yon_char_parse(const char *parameters, int *size, char *divider){ char *param = strstr(paramline,divider); for (;param;param=strstr(paramline,divider)){ string = yon_remalloc(string,sizeof(char*)*((*size)+1)); - string[(*size)]=yon_char_divide(paramline,strlen(paramline)-strlen(param)); + int cur_size = strlen(paramline)-strlen(param); + string[(*size)] = malloc(cur_size+1); + memset(string[(*size)],0,cur_size+1); + memcpy(string[(*size)],paramline,cur_size); + memcpy(paramline,paramline+strlen(string[(*size)])+strlen(divider),strlen(param)); + // string[(*size)]=yon_char_divide(paramline,strlen(paramline)-strlen(param)); *size=(*size)+1; } string = yon_remalloc(string,sizeof(char*)*((*size)+1)); diff --git a/source/libublsettings-config.c b/source/libublsettings-config.c index 3089c10..20e4929 100644 --- a/source/libublsettings-config.c +++ b/source/libublsettings-config.c @@ -320,6 +320,9 @@ char *yon_config_command_get_full(config_str command, int command_size){ } if (final_size>0){ char *final_command = yon_char_parsed_to_string(final,final_size," -- get "); + char *temp = yon_char_replace(final_command,"ubconfig","ubconfig -ea"); + free(final_command); + final_command = temp; yon_char_parsed_free(final,final_size); return final_command; }