]> Sergey Matveev's repositories - nnn.git/commitdiff
Just use xstrdup() in makepath()
authorsin <sin@2f30.org>
Fri, 14 Nov 2014 12:50:41 +0000 (12:50 +0000)
committersin <sin@2f30.org>
Fri, 14 Nov 2014 12:50:41 +0000 (12:50 +0000)
noice.c

diff --git a/noice.c b/noice.c
index f52e910f1acefc8759acefc431aca35e6f9dd70a..d0b009482751c97aee08ef416b881b674c74e281 100644 (file)
--- a/noice.c
+++ b/noice.c
@@ -452,24 +452,23 @@ dentfree(struct entry *dents, int n)
 char *
 makepath(char *dir, char *name)
 {
-       char *path;
+       char path[PATH_MAX];
 
        /* Handle absolute path */
        if (name[0] == '/') {
-               path = xstrdup(name);
+               strlcpy(path, name, sizeof(path));
        } else {
-               path = xmalloc(PATH_MAX);
                /* Handle root case */
                if (strcmp(dir, "/") == 0) {
-                       strlcpy(path, "/", PATH_MAX);
-                       strlcat(path, name, PATH_MAX);
+                       strlcpy(path, "/", sizeof(path));
+                       strlcat(path, name, sizeof(path));
                } else {
-                       strlcpy(path, dir, PATH_MAX);
-                       strlcat(path, "/", PATH_MAX);
-                       strlcat(path, name, PATH_MAX);
+                       strlcpy(path, dir, sizeof(path));
+                       strlcat(path, "/", sizeof(path));
+                       strlcat(path, name, sizeof(path));
                }
        }
-       return path;
+       return xstrdup(path);
 }
 
 /* Return the position of the matching entry or 0 otherwise */