diff options
author | Guy Harris <guy@alum.mit.edu> | 2013-11-17 08:49:51 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2013-11-17 08:49:51 +0000 |
commit | ed80b06a78ed479b4970fe61230e27477e2a8559 (patch) | |
tree | 427150c33909bc369c5f29d4577728c48a7e712a | |
parent | d0cd9624d906022f69ecc79c09e7cbdc2acf309d (diff) |
strncat() bad, g_strlcat() good.
svn path=/trunk/; revision=53381
-rw-r--r-- | wsutil/filesystem.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/wsutil/filesystem.c b/wsutil/filesystem.c index 8028f61ca1..84b326e7d7 100644 --- a/wsutil/filesystem.c +++ b/wsutil/filesystem.c @@ -562,7 +562,7 @@ init_progfile_dir(const char *arg0 long path_max; char *pathstr; char *path_start, *path_end; - size_t path_component_len; + size_t path_component_len, path_len; char *retstr; char *path; char *dir_end; @@ -661,12 +661,13 @@ init_progfile_dir(const char *arg0 if (path_end == NULL) path_end = path_start + strlen(path_start); path_component_len = path_end - path_start; - path = (char *)g_malloc(path_component_len + 1 - + strlen(execname) + 1); + path_len = path_component_len + 1 + + strlen(execname) + 1; + path = (char *)g_malloc(path_len); memcpy(path, path_start, path_component_len); path[path_component_len] = '\0'; - strncat(path, "/", 2); - strncat(path, execname, strlen(execname) + 1); + g_strlcat(path, "/", path_len); + g_strlcat(path, execname, path_len); if (access(path, X_OK) == 0) { /* * Found it! |