From c9144f0cbb38c83457d9c78953d10bad1db206ac Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 22 Aug 2022 12:01:54 +1000 Subject: Fix potential undefined behavior printing a NULL pointer string Improve messages when the font directory can't be detected or is missing. --- source/blender/blenfont/intern/blf_font_default.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/source/blender/blenfont/intern/blf_font_default.c b/source/blender/blenfont/intern/blf_font_default.c index 1bde25b5776..33dcce1539a 100644 --- a/source/blender/blenfont/intern/blf_font_default.c +++ b/source/blender/blenfont/intern/blf_font_default.c @@ -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); - } } -- cgit v1.2.3