findutils-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Findutils-patches] [PATCH] Fix misleading error message when argument t


From: jay
Subject: [Findutils-patches] [PATCH] Fix misleading error message when argument to find -user is missing/unknown.
Date: Mon, 22 Dec 2008 09:49:24 +0000

From: James Youngman <address@hidden>

Signed-off-by: James Youngman <address@hidden>
---
 ChangeLog     |   10 ++++++++++
 NEWS          |    6 ++++++
 find/parser.c |   24 +++++++++++++++++++++---
 3 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f17fc21..b354bb5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-12-21  James Youngman  <address@hidden>
+
+       Fix Savannah bug #25144: Misleading message for find -user unknown.
+       * find/parser.c (parse_user): If there is no known group for the
+       specified user (and it does not appear to be a uid), issue a
+       fatal error message instead of returning false, because the error
+       message that results from a return of false is "invalid argument",
+       which is misleading in this case.  Similarly for a missing or an
+       empty argument.  
+
 2008-12-01  James Youngman  <address@hidden>
 
        * po/fr.po: Updated French translation.
diff --git a/NEWS b/NEWS
index 4523f98..e5cb010 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,12 @@ GNU findutils NEWS - User visible changes.     -*- outline -*- 
(allout)
 
 * Major changes in release 4.5.4-CVS, YYYY-MM-DD
 
+** Bug Fixes
+
+#25144: Misleading error message when argument to find -user is an
+unknown user or is missing.
+
+
 * Major changes in release 4.5.3, 2008-12-07
 
 ** Bug Fixes
diff --git a/find/parser.c b/find/parser.c
index 102eb7d..852c63c 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -2447,11 +2447,29 @@ parse_user (const struct parser_table* entry, char 
**argv, int *arg_ptr)
        }
       else
        {
-         int uid_len = strspn (username, "0123456789");
+         const size_t uid_len = strspn (username, "0123456789");
          if (uid_len && (username[uid_len]==0))
-           uid = safe_atoi (username);
+           {
+             uid = safe_atoi (username);
+           }
          else
-           return false;
+           {
+             /* This is a fatal error (if we just return false, the caller
+              * will say "invalid argument `username' to -user", which is 
+              * not as helpful). */
+             if (username[0])
+               {
+                 error (1, 0, _("%s is not the name of a known user."),
+                        quotearg_n_style (0, options.err_quoting_style,
+                                          username));
+               }
+             else
+               {
+                 error (1, 0, _("The argument to -user should not be empty."));
+               }
+             /*NOTREACHED*/
+             return false;
+           }
        }
       our_pred = insert_primary (entry);
       our_pred->args.uid = uid;
-- 
1.5.6.5





reply via email to

[Prev in Thread] Current Thread [Next in Thread]