.
authorJim Meyering <jim@meyering.net>
Sat, 8 Oct 1994 00:34:54 +0000 (00:34 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 8 Oct 1994 00:34:54 +0000 (00:34 +0000)
src/chgrp.c
src/chmod.c
src/chown.c
src/install.c
src/mkdir.c
src/mkfifo.c
src/mknod.c
src/rm.c
src/rmdir.c
src/sync.c

index 84e6b4fc8ca5b319c5728d445c3d011ae8b040c3..71d0f8dec2e7501d29b4d444e346a89544329bb9 100644 (file)
@@ -137,8 +137,11 @@ main (argc, argv)
   if (show_help)
     usage (0);
 
-  if (optind >= argc - 1)
-    usage (1);
+  if (argc - optind <= 1)
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   parse_group (argv[optind++], &group);
 
index 17495cb6b0bcec8d093f841fe2c982b9cd19ed40..6285ca9c72ecde6d77c8b93f7a7de8a521e00ee8 100644 (file)
@@ -157,7 +157,10 @@ main (argc, argv)
     modeind = optind++;
 
   if (optind >= argc)
-    usage (1);
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   changes = mode_compile (argv[modeind],
                          MODE_MASK_EQUALS | MODE_MASK_PLUS | MODE_MASK_MINUS);
index 3eac74a06c67b1d2230851fb9fc34b885f2165cd..6177a726816f4c307c8476e394b66bd0ba478608 100644 (file)
@@ -151,7 +151,10 @@ main (argc, argv)
     usage (0);
 
   if (optind >= argc - 1)
-    usage (1);
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   e = parse_user_spec (argv[optind], &user, &group, &username, &groupname);
   if (e)
index fc880e03ee0fd7e404769fe7c6cbd0b12afe6dd9..75958f1bd31e5d3bff6d618d27e3dfd25e8dc4cd 100644 (file)
@@ -211,10 +211,15 @@ main (argc, argv)
     usage (0);
 
   /* Check for invalid combinations of arguments. */
-  if ((dir_arg && strip_files)
-      || (optind == argc)
-      || (optind == argc - 1 && !dir_arg))
-    usage (1);
+  if (dir_arg && strip_files)
+    error (1, 0,
+          "the strip option may not be used when installing a directory");
+
+  if (optind == argc || (optind == argc - 1 && !dir_arg))
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   if (symbolic_mode)
     {
index 5a60304904a5b00c8b9ff48a65a3f58123226390..0bbe34441aaafaf7dfe8beb80852967d4501be7c 100644 (file)
@@ -103,7 +103,10 @@ main (argc, argv)
     usage (0);
 
   if (optind == argc)
-    usage (1);
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   newmode = 0777 & ~umask (0);
   parent_mode = newmode | 0300;        /* u+wx */
index 0c997233493c5cf8f724670852008e2232cabc4e..1e6d500706327baac716349595e6a2b516764b8b 100644 (file)
@@ -92,7 +92,10 @@ main (argc, argv)
     usage (0);
 
   if (optind == argc)
-    usage (1);
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   newmode = 0666 & ~umask (0);
   if (symbolic_mode)
index 957e11a74f2af24dd78bf220c341513a6f76e228..8d7ace86c4c1378b72493b7ef92d7deaac598c8f 100644 (file)
@@ -104,7 +104,17 @@ main (argc, argv)
     }
 
   if (argc - optind != 2 && argc - optind != 4)
-    usage (1);
+    {
+      const char *msg;
+      if (argc - optind < 2)
+       msg = "too few arguments";
+      else if (argc - optind > 4)
+       msg = "too many arguments";
+      else
+       msg = "wrong number of arguments";
+      error (0, 0, msg);
+      usage (1);
+    }
 
   /* Only check the first character, to allow mnemonic usage like
      `mknod /dev/rst0 character 18 0'. */
@@ -116,7 +126,12 @@ main (argc, argv)
       error (4, 0, "block special files not supported");
 #else
       if (argc - optind != 4)
-       usage (1);
+       {
+         error (0, 0, "\
+when creating block special files, major and minor device\n\
+numbers must be specified");
+         usage (1);
+       }
       if (mknod (argv[optind], newmode | S_IFBLK,
                 makedev (atoi (argv[optind + 2]), atoi (argv[optind + 3]))))
        error (1, errno, "%s", argv[optind]);
@@ -129,7 +144,12 @@ main (argc, argv)
       error (4, 0, "character special files not supported");
 #else
       if (argc - optind != 4)
-       usage (1);
+       {
+         error (0, 0, "\
+when creating character special files, major and minor device\n\
+numbers must be specified");
+         usage (1);
+       }
       if (mknod (argv[optind], newmode | S_IFCHR,
                 makedev (atoi (argv[optind + 2]), atoi (argv[optind + 3]))))
        error (1, errno, "%s", argv[optind]);
@@ -141,7 +161,11 @@ main (argc, argv)
       error (4, 0, "fifo files not supported");
 #else
       if (argc - optind != 2)
-       usage (1);
+       {
+         error (0, 0, "\
+major and minor device numbers may not be specified for fifo files");
+         usage (1);
+       }
       if (mkfifo (argv[optind], newmode))
        error (1, errno, "%s", argv[optind]);
 #endif
index cd5dd2050f23c59650d14c5b33b1c9aaea800434..a90c64cccd8f3d0991c40fe0737710f05c76f82b 100644 (file)
--- a/src/rm.c
+++ b/src/rm.c
@@ -153,7 +153,10 @@ main (argc, argv)
       if (ignore_missing_files)
        exit (0);
       else
-       usage (1);
+       {
+         error (0, 0, "too few arguments");
+         usage (1);
+       }
     }
 
   stdin_tty = isatty (STDIN_FILENO);
index ba8c15d3bfb0d7e3570cc3da9c83fbfde80cfdd3..18f55d81f42fbc6331407306d7640bd5f6bbc9f8 100644 (file)
@@ -91,7 +91,10 @@ main (argc, argv)
     usage (0);
 
   if (optind == argc)
-    usage (1);
+    {
+      error (0, 0, "too few arguments");
+      usage (1);
+    }
 
   for (; optind < argc; ++optind)
     {
index 04daa3c13ed0966a3c00b2f0e90503656906b581..89e9d1969edfaddcd088bc62d4ab91e63f8793a8 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <config.h>
 #include <stdio.h>
+#include <sys/types.h>
 
 #include "system.h"
 #include "long-options.h"