From: Karel Zak Date: Tue, 16 Aug 2016 10:35:57 +0000 (+0200) Subject: include/env: minor fixes and clean ups X-Git-Tag: v2.29-rc1~115 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=05d8868d86104c26aee8a1a30192243d0f9d2682;p=thirdparty%2Futil-linux.git include/env: minor fixes and clean ups Signed-off-by: Karel Zak --- diff --git a/include/env.h b/include/env.h index ff5fc796e3..db6f95932d 100644 --- a/include/env.h +++ b/include/env.h @@ -2,14 +2,20 @@ #define UTIL_LINUX_ENV_H #include "c.h" +#include "nls.h" extern void sanitize_env(void); extern char *safe_getenv(const char *arg); + +#ifndef XSETENV_EXIT_CODE +# define XSETENV_EXIT_CODE EXIT_FAILURE +#endif + static inline void xsetenv(char const *name, char const *val, int overwrite) { if (setenv(name, val, overwrite) != 0) - err(EXIT_FAILURE, _("failed to set the %s environment variable"), name); + err(XSETENV_EXIT_CODE, _("failed to set the %s environment variable"), name); } #endif /* UTIL_LINUX_ENV_H */ diff --git a/login-utils/login.c b/login-utils/login.c index 1de24a8b89..2350fc3ec3 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -1047,13 +1047,14 @@ static void init_environ(struct login_context *cxt) xsetenv("TERM", termenv ? termenv : "dumb", 1); free(termenv); - if (pwd->pw_uid) + if (pwd->pw_uid) { if (logindefs_setenv("PATH", "ENV_PATH", _PATH_DEFPATH) != 0) err(EXIT_FAILURE, _("failed to set the %s environment variable"), "PATH"); - else if (logindefs_setenv("PATH", "ENV_ROOTPATH", NULL) != 0) - if (logindefs_setenv("PATH", "ENV_SUPATH", _PATH_DEFPATH_ROOT) != 0) + } else if (logindefs_setenv("PATH", "ENV_ROOTPATH", NULL) != 0 && + logindefs_setenv("PATH", "ENV_SUPATH", _PATH_DEFPATH_ROOT) != 0) { err(EXIT_FAILURE, _("failed to set the %s environment variable"), "PATH"); + } /* mailx will give a funny error msg if you forget this one */ len = snprintf(tmp, sizeof(tmp), "%s/%s", _PATH_MAILDIR, pwd->pw_name);