Fix small buffer overflow on the diameters file string

This commit is contained in:
Paul Dino Jones 2024-07-28 11:00:26 -04:00
parent 80a2afb675
commit 53cdcc592f
1 changed files with 6 additions and 2 deletions

View File

@ -63,10 +63,13 @@ int main(int argc, char** argv)
create_user_dir("/.config/");
create_user_dir("/.cache/");
char* config_file_str = ( char* ) malloc(1 + strlen(home_dir_str) + strlen("/.config/") + strlen("monocoque/monocoque.config"));
size_t diameters_file_sz = 1 + strlen(home_dir_str) + strlen("/.config/") + strlen("monocoque/diameters.config");
char* diameters_file_str = ( char* ) malloc(1 + strlen(home_dir_str) + strlen("/.config/") + strlen("monocoque/diameters.json"));
size_t diameters_file_sz = snprintf(NULL, 0, "%s/.config/monocoque/diameters.config", home_dir_str);
diameters_file_sz += 1;
char* diameters_file_str = ( char* ) malloc(diameters_file_sz);
snprintf(diameters_file_str, diameters_file_sz, "%s/.config/monocoque/diameters.config", home_dir_str);
char* cache_dir_str = ( char* ) malloc(1 + strlen(home_dir_str) + strlen("/.cache/monocoque/"));
strcpy(config_file_str, home_dir_str);
strcat(config_file_str, "/.config/");
@ -103,6 +106,7 @@ int main(int argc, char** argv)
free(diameters_file_str);
slogi("Loading configuration file: %s", config_file_str);
slogd("using diameters file %s", ms->tyre_diameter_config);
config_t cfg;
config_init(&cfg);
config_setting_t* config_devices = NULL;