readlink: realpath requires PATH_MAX, bb_common_bufsiz1 can be too small
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Sat, 10 Nov 2007 01:31:19 +0000 (01:31 +0000)
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Sat, 10 Nov 2007 01:31:19 +0000 (01:31 +0000)
umount: don't actually need char[2 * PATH_MAX] for realpath

git-svn-id: svn://busybox.net/trunk/busybox@20398 69ca8d6d-28ef-0310-b511-8ec308f3f277

coreutils/readlink.c
util-linux/umount.c

index b6e389a..1ab9459 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 #include <getopt.h>
-
 #include "libbb.h"
 
 int readlink_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -16,6 +15,7 @@ int readlink_main(int argc, char **argv)
 {
        char *buf;
        char *fname;
+       char pathbuf[PATH_MAX];
 
        USE_FEATURE_READLINK_FOLLOW(
                unsigned opt;
@@ -34,7 +34,7 @@ int readlink_main(int argc, char **argv)
        logmode = LOGMODE_NONE;
 
        if (opt) {
-               buf = realpath(fname, bb_common_bufsiz1);
+               buf = realpath(fname, pathbuf);
        } else {
                buf = xmalloc_readlink_or_warn(fname);
        }
index 17d88b3..7c1b813 100644 (file)
@@ -25,7 +25,7 @@ int umount_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int umount_main(int argc, char **argv)
 {
        int doForce;
-       char path[2*PATH_MAX];
+       char path[PATH_MAX + 2];
        struct mntent me;
        FILE *fp;
        char *fstype = 0;
@@ -89,7 +89,7 @@ int umount_main(int argc, char **argv)
 
                // Do we already know what to umount this time through the loop?
                if (m)
-                       safe_strncpy(path, m->dir, PATH_MAX);
+                       safe_strncpy(path, m->dir, sizeof(path));
                // For umount -a, end of mtab means time to exit.
                else if (opt & OPT_ALL)
                        break;