Compare commits

...

2 Commits

Author SHA1 Message Date
William Hubbs
d670dbddf7 Release openrc-0.9.9.1 2012-02-24 11:13:27 -06:00
William Hubbs
f1a19aed78 Skip pam if running as root
Reported-by: Piotr Karbowski <piotr.karbowski@gmail.com>
X-Gentoo-Bug: 386623
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=386623
2012-02-24 09:06:51 -06:00
2 changed files with 22 additions and 22 deletions

View File

@@ -1,3 +1,3 @@
NAME= openrc NAME= openrc
VERSION= 0.9.9 VERSION= 0.9.9.1
PKG= ${NAME}-${VERSION} PKG= ${NAME}-${VERSION}

View File

@@ -1178,12 +1178,9 @@ start_stop_daemon(int argc, char **argv)
} }
#ifdef HAVE_PAM #ifdef HAVE_PAM
if (changeuser != NULL) if (changeuser != NULL) {
pamr = pam_start("start-stop-daemon", pamr = pam_start("start-stop-daemon",
changeuser, &conv, &pamh); changeuser, &conv, &pamh);
else
pamr = pam_start("start-stop-daemon",
"nobody", &conv, &pamh);
if (pamr == PAM_SUCCESS) if (pamr == PAM_SUCCESS)
pamr = pam_acct_mgmt(pamh, PAM_SILENT); pamr = pam_acct_mgmt(pamh, PAM_SILENT);
@@ -1192,6 +1189,7 @@ start_stop_daemon(int argc, char **argv)
if (pamr != PAM_SUCCESS) if (pamr != PAM_SUCCESS)
eerrorx("%s: pam error: %s", eerrorx("%s: pam error: %s",
applet, pam_strerror(pamh, pamr)); applet, pam_strerror(pamh, pamr));
}
#endif #endif
if (gid && setgid(gid)) if (gid && setgid(gid))
@@ -1219,6 +1217,7 @@ start_stop_daemon(int argc, char **argv)
rc_stringlist_add(env_list, environ[i++]); rc_stringlist_add(env_list, environ[i++]);
#ifdef HAVE_PAM #ifdef HAVE_PAM
if (changeuser != NULL) {
pamenv = (const char *const *)pam_getenvlist(pamh); pamenv = (const char *const *)pam_getenvlist(pamh);
if (pamenv) { if (pamenv) {
while (*pamenv) { while (*pamenv) {
@@ -1230,6 +1229,7 @@ start_stop_daemon(int argc, char **argv)
pamenv++; pamenv++;
} }
} }
}
#endif #endif
TAILQ_FOREACH(env, env_list, entries) { TAILQ_FOREACH(env, env_list, entries) {
@@ -1304,7 +1304,7 @@ start_stop_daemon(int argc, char **argv)
setsid(); setsid();
execvp(exec, argv); execvp(exec, argv);
#ifdef HAVE_PAM #ifdef HAVE_PAM
if (pamr == PAM_SUCCESS) if (changeuser != NULL && pamr == PAM_SUCCESS)
pam_close_session(pamh, PAM_SILENT); pam_close_session(pamh, PAM_SILENT);
#endif #endif
eerrorx("%s: failed to exec `%s': %s", eerrorx("%s: failed to exec `%s': %s",