PERFORCE change 176182 for review

Garrett Cooper gcooper at FreeBSD.org
Sun Mar 28 06:03:46 UTC 2010


http://p4web.freebsd.org/chv.cgi?CH=176182

Change 176182 by gcooper at gcooper-bayonetta on 2010/03/28 06:03:36

	There no sense lying about this point anymore: vsystem calls are limited by ARG_MAX, not by any factor of FILENAME_MAX or PATH_MAX.

Affected files ...

.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#3 edit

Differences ...

==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#3 (text+ko) ====

@@ -262,15 +262,15 @@
 void
 copy_file(const char *dir, const char *fname, const char *to)
 {
-    char cmd[FILENAME_MAX];
+    char cmd[ARG_MAX];
 
     if (fname[0] == '/')
-	snprintf(cmd, FILENAME_MAX, "/bin/cp -r %s %s", fname, to);
+	snprintf(cmd, ARG_MAX, "/bin/cp -r %s %s", fname, to);
     else
-	snprintf(cmd, FILENAME_MAX, "/bin/cp -r %s/%s %s", dir, fname, to);
+	snprintf(cmd, ARG_MAX, "/bin/cp -r %s/%s %s", dir, fname, to);
     if (vsystem(cmd)) {
 	cleanup(0);
-	errx(2, "%s: could not perform '%s'", __func__, cmd);
+	errx(2, "%s.%s: could not perform '%s'", progname, __func__, cmd);
     }
 }
 
@@ -281,12 +281,12 @@
 void
 move_file(const char *dir, const char *fname, const char *to)
 {
-    char cmd[FILENAME_MAX];
+    char cmd[ARG_MAX];
 
     if (fname[0] == '/')
- 	snprintf(cmd, FILENAME_MAX, "/bin/mv %s %s", fname, to);
+ 	snprintf(cmd, ARG_MAX, "/bin/mv %s %s", fname, to);
     else
-	snprintf(cmd, FILENAME_MAX, "/bin/mv %s/%s %s", dir, fname, to);
+	snprintf(cmd, ARG_MAX, "/bin/mv %s/%s %s", dir, fname, to);
     if (vsystem(cmd) != 0) {
 	cleanup(0);
 	errx(2, "%s.%s: could not perform '%s'", progname, __func__, cmd);
@@ -304,17 +304,17 @@
 void
 copy_hierarchy(const char *dir, const char *fname, Boolean to)
 {
-    char cmd[FILENAME_MAX * 3];
+    char cmd[ARG_MAX];
 
     if (!to) {
 	/* If absolute path, use it */
 	if (*fname == '/')
 	    dir = "/";
-	snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - -C %s %s | /usr/bin/tar xpf -",
+	snprintf(cmd, ARG_MAX, "/usr/bin/tar cf - -C %s %s | /usr/bin/tar xpf -",
 		 dir, fname);
     }
     else
-	snprintf(cmd, FILENAME_MAX * 3, "/usr/bin/tar cf - %s | /usr/bin/tar xpf - -C %s",
+	snprintf(cmd, ARG_MAX, "/usr/bin/tar cf - %s | /usr/bin/tar xpf - -C %s",
 		 fname, dir);
 #ifdef DEBUG
     printf("Using '%s' to copy trees.\n", cmd);


More information about the p4-projects mailing list