common: Fix commit f99830b.
authorWerner Koch <wk@gnupg.org>
Fri, 6 Nov 2015 12:20:01 +0000 (13:20 +0100)
committerWerner Koch <wk@gnupg.org>
Fri, 6 Nov 2015 12:25:00 +0000 (13:25 +0100)
* common/userids.c (classify_user_id): Avoid underflow.  Use spacep to
also trim tabs.
--

This is actually not fully consistent because the now used
trim_trailing_spaces uses the locale dependent isspace and not spacep.
Given that the use of isspace is anyway problematic we should check
whether we can chnage trim_trailing_spaces.

Signed-off-by: Werner Koch <wk@gnupg.org>
common/userids.c

index 25d6741..f9a0036 100644 (file)
@@ -89,11 +89,15 @@ classify_user_id (const char *name, KEYDB_SEARCH_DESC *desc, int openpgp_hack)
   /* Skip leading and trailing spaces.  */
   for(s = name; *s && spacep (s); s++ )
     ;
-  if (s[strlen(s) - 1] == ' ')
+  if (*s && spacep (s + strlen(s) - 1))
     {
-      s2 = xstrdup (s);
-      while (s2[strlen(s2) - 1] == ' ')
-        s2[strlen(s2) - 1] = 0;
+      s2 = xtrystrdup (s);
+      if (!s2)
+        {
+          rc = gpg_error_from_syserror ();
+          goto out;
+        }
+      trim_trailing_spaces (s2);
       s = s2;
     }