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 <ideasman42@gmail.com>2020-10-04 14:23:48 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-10-04 14:23:48 +0300
commit16c4db122f07cdf0e8e96214848e2ddd91c1fdc8 (patch)
treee0bc790b9f42d6bf95ca1e281501bc28aad08b0a
parent8683d4e88f2e64be0ec868f1c028f3c60262e948 (diff)
Fix error in last commit printing NULL strings
While this works with GCC, printing NULL strings is undefined behavior.
-rw-r--r--source/blender/blenkernel/intern/appdir.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/appdir.c b/source/blender/blenkernel/intern/appdir.c
index 65c8921666b..667b4d5ef94 100644
--- a/source/blender/blenkernel/intern/appdir.c
+++ b/source/blender/blenkernel/intern/appdir.c
@@ -60,6 +60,9 @@
# include <unistd.h>
#endif /* WIN32 */
+static const char _str_null[] = "(null)";
+#define STR_OR_FALLBACK(a) ((a) ? (a) : _str_null)
+
/* -------------------------------------------------------------------- */
/** \name Local Variables
* \{ */
@@ -297,7 +300,11 @@ static bool get_path_local_ex(char *targetpath,
{
char relfolder[FILE_MAX];
- CLOG_INFO(&LOG, 3, "folder='%s', subfolder='%s'", folder_name, subfolder_name);
+ CLOG_INFO(&LOG,
+ 3,
+ "folder='%s', subfolder='%s'",
+ STR_OR_FALLBACK(folder_name),
+ STR_OR_FALLBACK(subfolder_name));
if (folder_name) { /* `subfolder_name` may be NULL. */
BLI_path_join(relfolder, sizeof(relfolder), folder_name, subfolder_name, NULL);
@@ -415,7 +422,12 @@ static bool get_path_user_ex(char *targetpath,
return false;
}
- CLOG_INFO(&LOG, 3, "'%s', folder='%s', subfolder='%s'", user_path, folder_name, subfolder_name);
+ CLOG_INFO(&LOG,
+ 3,
+ "'%s', folder='%s', subfolder='%s'",
+ user_path,
+ STR_OR_FALLBACK(folder_name),
+ STR_OR_FALLBACK(subfolder_name));
/* `subfolder_name` may be NULL. */
return test_path(
@@ -470,8 +482,12 @@ static bool get_path_system_ex(char *targetpath,
return false;
}
- CLOG_INFO(
- &LOG, 3, "'%s', folder='%s', subfolder='%s'", system_path, folder_name, subfolder_name);
+ CLOG_INFO(&LOG,
+ 3,
+ "'%s', folder='%s', subfolder='%s'",
+ system_path,
+ STR_OR_FALLBACK(folder_name),
+ STR_OR_FALLBACK(subfolder_name));
/* Try `$BLENDERPATH/folder_name/subfolder_name`, `subfolder_name` may be NULL. */
return test_path(