[Bf-blender-cvs] [16c4db122f0] master: Fix error in last commit printing NULL strings
Campbell Barton
noreply at git.blender.org
Sun Oct 4 13:25:46 CEST 2020
Commit: 16c4db122f07cdf0e8e96214848e2ddd91c1fdc8
Author: Campbell Barton
Date: Sun Oct 4 22:23:48 2020 +1100
Branches: master
https://developer.blender.org/rB16c4db122f07cdf0e8e96214848e2ddd91c1fdc8
Fix error in last commit printing NULL strings
While this works with GCC, printing NULL strings is undefined behavior.
===================================================================
M source/blender/blenkernel/intern/appdir.c
===================================================================
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(
More information about the Bf-blender-cvs
mailing list