From 0664868aec515111fe419a7ec73c19441cd1e19d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 23 Oct 2011 05:56:55 +0000 Subject: BLI_make_file_string wasn't guaranteed to initialize the resulting path, some parts of the code accounted for this but most not, always initialize the string to "". --- source/blender/blenlib/intern/path_util.c | 15 ++++++++++++--- source/blender/blenloader/intern/writefile.c | 1 - source/blender/editors/render/render_preview.c | 2 -- 3 files changed, 12 insertions(+), 6 deletions(-) (limited to 'source') diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index d9176c5f162..d28c1e29820 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -1257,9 +1257,18 @@ void BLI_make_file_string(const char *relabase, char *string, const char *dir, { int sl; - if (!string || !dir || !file) return; /* We don't want any NULLs */ - - string[0]= 0; /* ton */ + if (string) { + /* ensure this is always set even if dir/file are NULL */ + string[0]= '\0'; + + if (ELEM(NULL, dir, file)) { + return; /* We don't want any NULLs */ + } + } + else { + return; /* string is NULL, probably shouldnt happen but return anyway */ + } + /* we first push all slashes into unix mode, just to make sure we don't get any mess with slashes later on. -jesterKing */ diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 752677d047d..45eaa6d0156 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2699,7 +2699,6 @@ int BLO_write_file(Main *mainvar, const char *filepath, int write_flags, ReportL } } - userfilename[0]= '\0'; /* ensure its initialized */ BLI_make_file_string(G.main->name, userfilename, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_STARTUP_FILE); write_user_block= (BLI_path_cmp(filepath, userfilename) == 0); diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index 697cddfcee0..af2cd431a10 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -122,8 +122,6 @@ ImBuf* get_brush_icon(Brush *brush) if (!(brush->icon_imbuf)) { folder= BLI_get_folder(BLENDER_DATAFILES, "brushicons"); - path[0]= 0; - BLI_make_file_string(G.main->name, path, folder, brush->icon_filepath); if (path[0]) -- cgit v1.2.3