]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
maint: pacify GCC 6 with -Wnull-dereference
authorBernhard Voelker <mail@bernhard-voelker.de>
Wed, 27 Jul 2016 07:33:19 +0000 (09:33 +0200)
committerBernhard Voelker <mail@bernhard-voelker.de>
Wed, 27 Jul 2016 19:28:49 +0000 (21:28 +0200)
src/id.c:249:29: error: potential null pointer dereference \
[-Werror=null-dereference]
       pw_name = xstrdup (pwd->pw_name);
                          ~~~^~~~~~~~~
src/whoami.c:89:11: error: potential null pointer dereference \
[-Werror=null-dereference]
   puts (pw->pw_name);
         ~~^~~~~~~~~

* src/id.c (main): Explicitly exit with EXIT_FAILURE after an eror to
help gcc-6 to detect that the dereferenced pointer is valid.
* src/whoami.c (main): Likewise.

src/id.c
src/whoami.c

index 218ee5a318e1a5e6c4bf0440debfee1d8aba0066..35cbeb564b9746cdded7072911a533a036508c28 100644 (file)
--- a/src/id.c
+++ b/src/id.c
@@ -245,7 +245,10 @@ main (int argc, char **argv)
             }
         }
       if (pwd == NULL)
-        error (EXIT_FAILURE, 0, _("%s: no such user"), quote (spec));
+        {
+          error (0, 0, _("%s: no such user"), quote (spec));
+          exit (EXIT_FAILURE);
+        }
       pw_name = xstrdup (pwd->pw_name);
       ruid = euid = pwd->pw_uid;
       rgid = egid = pwd->pw_gid;
index e58c57528e1feeb6292170e61b2cf9f4ffd8d5f0..972cd55398e2914876a07577d22f41ca85d6056a 100644 (file)
@@ -84,8 +84,11 @@ main (int argc, char **argv)
   uid = geteuid ();
   pw = (uid == NO_UID && errno ? NULL : getpwuid (uid));
   if (!pw)
-    error (EXIT_FAILURE, errno, _("cannot find name for user ID %lu"),
-           (unsigned long int) uid);
+    {
+      error (0, errno, _("cannot find name for user ID %lu"),
+             (unsigned long int) uid);
+      exit (EXIT_FAILURE);
+    }
   puts (pw->pw_name);
   return EXIT_SUCCESS;
 }