strncat() bad, g_strlcat() good.
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 17 Nov 2013 08:49:51 +0000 (08:49 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 17 Nov 2013 08:49:51 +0000 (08:49 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@53381 f5534014-38df-0310-8fa8-9805f1628bb7

wsutil/filesystem.c

index 8028f61ca15ccaeca98c5febf9c5dffa380919e1..84b326e7d76a9e9e604284487d8700a12af56a91 100644 (file)
@@ -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!