]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
sulogin: use pathnames.h for file locations
authorDave Reisner <d@falconindy.com>
Tue, 28 Feb 2012 16:45:18 +0000 (11:45 -0500)
committerKarel Zak <kzak@redhat.com>
Mon, 12 Mar 2012 10:17:41 +0000 (11:17 +0100)
This covers /etc/shadow and /etc/passwd. We don't have a define for
/bin/sh -- just replace the macro with the hardcoded string as done
elsewhere.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
login-utils/sulogin.c

index f672e7531c10f015904900b63c885dd47a081e67..98caa2dbb662ed82ccd05aa78195cce96a23ef94 100644 (file)
@@ -51,9 +51,7 @@
 #  include <selinux/get_context_list.h>
 #endif
 
-#define F_PASSWD       "/etc/passwd"
-#define F_SHADOW       "/etc/shadow"
-#define BINSH          "/bin/sh"
+#include "pathnames.h"
 
 static int timeout;
 static int profile;
@@ -214,8 +212,8 @@ static struct passwd *getrootpwent(int try_manually)
        pwd.pw_uid = 0;
        pwd.pw_gid = 0;
 
-       if ((fp = fopen(F_PASSWD, "r")) == NULL) {
-               perror(F_PASSWD);
+       if ((fp = fopen(_PATH_PASSWD, "r")) == NULL) {
+               perror(_PATH_PASSWD);
                return &pwd;
        }
 
@@ -242,7 +240,7 @@ static struct passwd *getrootpwent(int try_manually)
         *      or not found, return.
         */
        if (p == NULL) {
-               fprintf(stderr, "%s: no entry for root\n", F_PASSWD);
+               fprintf(stderr, "%s: no entry for root\n", _PATH_PASSWD);
                return &pwd;
        }
        if (valid(pwd.pw_passwd))
@@ -253,8 +251,8 @@ static struct passwd *getrootpwent(int try_manually)
         *      shadow password, try it.
         */
        strcpy(pwd.pw_passwd, "");
-       if ((fp = fopen(F_SHADOW, "r")) == NULL) {
-               fprintf(stderr, "%s: root password garbled\n", F_PASSWD);
+       if ((fp = fopen(_PATH_SHADOW_PASSWD, "r")) == NULL) {
+               fprintf(stderr, "%s: root password garbled\n", _PATH_PASSWD);
                return &pwd;
        }
        while ((p = fgets(sline, 256, fp)) != NULL) {
@@ -271,11 +269,11 @@ static struct passwd *getrootpwent(int try_manually)
         *      NULL it, and return.
         */
        if (p == NULL) {
-               fprintf(stderr, "%s: no entry for root\n", F_SHADOW);
+               fprintf(stderr, "%s: no entry for root\n", _PATH_SHADOW_PASSWD);
                strcpy(pwd.pw_passwd, "");
        }
        if (!valid(pwd.pw_passwd)) {
-               fprintf(stderr, "%s: root password garbled\n", F_SHADOW);
+               fprintf(stderr, "%s: root password garbled\n", _PATH_SHADOW_PASSWD);
                strcpy(pwd.pw_passwd, "");
        }
        return &pwd;
@@ -352,7 +350,7 @@ static void sushell(struct passwd *pwd)
                if (pwd->pw_shell[0])
                        sushell = pwd->pw_shell;
                else
-                       sushell = BINSH;
+                       sushell = "/bin/sh";
        }
        if ((p = strrchr(sushell, '/')) == NULL)
                p = sushell;
@@ -396,9 +394,9 @@ static void sushell(struct passwd *pwd)
        execl(sushell, shell, NULL);
        perror(sushell);
 
-       setenv("SHELL", BINSH, 1);
-       execl(BINSH, profile ? "-sh" : "sh", NULL);
-       perror(BINSH);
+       setenv("SHELL", "/bin/sh", 1);
+       execl("/bin/sh", profile ? "-sh" : "sh", NULL);
+       perror("/bin/sh");
 }
 
 static void usage(void)