Merge pull request 'Crash fix' (#60) from YanTheKaller/libublsettings:master into master

Reviewed-on: #60
master v1.55
Dmitry Razumov 2 months ago
commit 0f184ce1a3

@ -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));

@ -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;
}
@ -1194,7 +1197,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;
@ -1295,6 +1298,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;

Loading…
Cancel
Save