Fix potential undefined behavior printing a NULL pointer string

Improve messages when the font directory can't be detected or is missing.
This commit is contained in:
Campbell Barton 2022-08-22 12:01:54 +10:00
parent a0c28a8054
commit c9144f0cbb
1 changed files with 9 additions and 5 deletions

View File

@ -53,8 +53,15 @@ void BLF_load_font_stack()
BLF_load_default(false);
BLF_load_mono_default(false);
const char *path = BKE_appdir_folder_id(BLENDER_DATAFILES, BLF_DATAFILES_FONTS_DIR SEP_STR);
if (path && BLI_exists(path)) {
const char *datafiles_fonts_dir = BLF_DATAFILES_FONTS_DIR SEP_STR;
const char *path = BKE_appdir_folder_id(BLENDER_DATAFILES, datafiles_fonts_dir);
if (UNLIKELY(!path)) {
fprintf(stderr, "Font data directory \"%s\" could not be detected!\n", datafiles_fonts_dir);
}
else if (UNLIKELY(!BLI_exists(path))) {
fprintf(stderr, "Font data directory \"%s\" does not exist!\n", path);
}
else {
struct direntry *dir;
uint num_files = BLI_filelist_dir_contents(path, &dir);
for (int f = 0; f < num_files; f++) {
@ -74,7 +81,4 @@ void BLF_load_font_stack()
}
BLI_filelist_free(dir, num_files);
}
else {
fprintf(stderr, "Fonts not found at %s\n", path);
}
}