From 558ce3044d5e22890b272b4e90f3ac0b236726a0 Mon Sep 17 00:00:00 2001 From: Bernhard Voelker Date: Wed, 27 Jul 2016 09:33:19 +0200 Subject: [PATCH] maint: pacify GCC 6 with -Wnull-dereference 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 | 5 ++++- src/whoami.c | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/id.c b/src/id.c index 218ee5a318..35cbeb564b 100644 --- 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; diff --git a/src/whoami.c b/src/whoami.c index e58c57528e..972cd55398 100644 --- a/src/whoami.c +++ b/src/whoami.c @@ -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; } -- 2.47.2