[Bf-blender-cvs] [b99d6e1bed5] master: Fix errors in BKE_appdir_font_folder_default
Campbell Barton
noreply at git.blender.org
Mon Nov 1 03:44:29 CET 2021
Commit: b99d6e1bed5f238151abfc613448bbbfe67f78d0
Author: Campbell Barton
Date: Mon Nov 1 13:42:12 2021 +1100
Branches: master
https://developer.blender.org/rBb99d6e1bed5f238151abfc613448bbbfe67f78d0
Fix errors in BKE_appdir_font_folder_default
- Missing NULL check for the HOME environment variable.
- The user preference path was written to even when the
path didn't exist.
===================================================================
M source/blender/blenkernel/intern/appdir.c
===================================================================
diff --git a/source/blender/blenkernel/intern/appdir.c b/source/blender/blenkernel/intern/appdir.c
index a43b708db52..d872dc67dcb 100644
--- a/source/blender/blenkernel/intern/appdir.c
+++ b/source/blender/blenkernel/intern/appdir.c
@@ -281,22 +281,29 @@ bool BKE_appdir_folder_caches(char *r_path, const size_t path_len)
*/
bool BKE_appdir_font_folder_default(char *dir)
{
+ char test_dir[FILE_MAXDIR];
+ test_dir[0] = '\0';
+
#ifdef WIN32
wchar_t wpath[FILE_MAXDIR];
if (SHGetSpecialFolderPathW(0, wpath, CSIDL_FONTS, 0)) {
wcscat(wpath, L"\\");
- BLI_strncpy_wchar_as_utf8(dir, wpath, FILE_MAXDIR);
- return (BLI_exists(dir));
+ BLI_strncpy_wchar_as_utf8(test_dir, wpath, sizeof(test_dir));
}
- return false;
#elif defined(__APPLE__)
const char *home = BLI_getenv("HOME");
- BLI_snprintf(dir, FILE_MAXDIR, "%s/Library/Fonts/", home);
- return (BLI_exists(dir));
+ if (home) {
+ BLI_path_join(test_dir, sizeof(test_dir), home, "Library", "Fonts", NULL);
+ }
#else
- BLI_strncpy(dir, "/usr/share/fonts/", FILE_MAXDIR);
- return (BLI_exists(dir));
+ STRNCPY(test_dir, "/usr/share/fonts");
#endif
+
+ if (test_dir[0] && BLI_exists(test_dir)) {
+ BLI_strncpy(dir, test_dir, FILE_MAXDIR);
+ return true;
+ }
+ return false;
}
/** \} */
More information about the Bf-blender-cvs
mailing list