Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <campbell@blender.org>2022-08-22 05:01:54 +0300
committerCampbell Barton <campbell@blender.org>2022-08-22 05:10:41 +0300
commitc9144f0cbb38c83457d9c78953d10bad1db206ac (patch)
tree06a1871eadd250da547f21e3a736d662d4eb8ae6 /source/blender/blenfont
parenta0c28a805483afb9f34199789d19c51d9811ff84 (diff)
Fix potential undefined behavior printing a NULL pointer string
Improve messages when the font directory can't be detected or is missing.
Diffstat (limited to 'source/blender/blenfont')
-rw-r--r--source/blender/blenfont/intern/blf_font_default.c14
1 files 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);
- }
}