diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-02-13 06:21:27 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-02-13 06:21:27 +0300 |
commit | 867fc4b463ef39ea16103f18f332c3d259624d29 (patch) | |
tree | 7d20c416241afb7b878b767a9955e284d3cddbe2 /source/blender/blenfont/intern/blf_dir.c | |
parent | 9e03a0d4762b4734fe7ccb20e03b4a3c8f939620 (diff) |
enforce string limits (reported by pedantic checking tools & some developers).
mostly replace strcpy with BLI_strncpy and multiple strcat's with a BLI_snprintf().
also fix possible crash if CWD isnt available.
Diffstat (limited to 'source/blender/blenfont/intern/blf_dir.c')
-rw-r--r-- | source/blender/blenfont/intern/blf_dir.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/source/blender/blenfont/intern/blf_dir.c b/source/blender/blenfont/intern/blf_dir.c index 1eb7597fa54..6bee7b38537 100644 --- a/source/blender/blenfont/intern/blf_dir.c +++ b/source/blender/blenfont/intern/blf_dir.c @@ -125,20 +125,16 @@ char *blf_dir_search(const char *file) { DirBLF *dir; char full_path[FILE_MAXDIR+FILE_MAXFILE]; - char *s; - - dir= global_font_dir.first; - s= NULL; - while (dir) { - BLI_join_dirfile(full_path, dir->path, file); + char *s= NULL; + + for(dir=global_font_dir.first; dir; dir= dir->next) { + BLI_join_dirfile(full_path, sizeof(full_path), dir->path, file); if (BLI_exist(full_path)) { - s= (char *)MEM_mallocN(strlen(full_path)+1,"blf_dir_search"); - strcpy(s, full_path); + s= BLI_strdup(full_path); break; } - dir= dir->next; } - + if (!s) { /* check the current directory, why not ? */ if (BLI_exist(file)) |